Строка из цифр в массив типа int
Подскажите способ, как строку из цифр типа String разделить на отдельные числа, границами выступает ноль, пример:
String num = "120760570";
Мне нужно и поместить их в int[] num, так num[0] присваивается число 12 из примера выше, num[1] - число 76 и т. д.
Ответы (2 шт):
Автор решения: Дмитрий
→ Ссылка
Ну как-то так:
int[] result = Stream.of(num.split("0"))
.mapToInt(Integer::valueOf)
.toArray();
Автор решения: Павел Ериков
→ Ссылка
Менее красивый способ, чем Дмитрия, но как вариант.
public static void main(String[] args) {
String num = "120760570";
int c = 0;
//Подсчитаем кол-во чисел
for(int i = 0; i < num.length(); i++)
if(num.charAt(i) == '0')
++c;
int n = 0;
int[] nums = new int[c];
c = 0;
//Собственно парсим числа
for(int i = 0; i < num.length(); i++){
if(num.charAt(i) == '0'){
nums[c] = n;
n = 0;
c++;
}
else{
n *= 10;
n += num.charAt(i) - '0';
}
}
for(int i = 0; i < c; ++i)
System.out.println(nums[i]);
}