public static void main(String[] args)
{
int num = 1234567;
int[]digits = Integer.toString(num).chars().map(c -> c-'0').toArray();
for(int d : digits)
System.out.print(d);
}
Основная идея:
- Преобразовать int в его строковое значение
Integer.toString(num);
Получите поток int, представляющий значение ASCII каждого символа (~ цифра), составляющего строковую версию нашего целого числа
Integer.toString(num).chars();
Преобразование значения ascii каждого символа в его значение.Чтобы получить действительное значение типа int для символа, мы должны вычесть значение кода ASCII символа '0' из кода ASCII фактического символа.Чтобы получить все цифры нашего номера, эта операция должна быть применена к каждому символу (соответствующему цифре), составляющему строковый эквивалент нашего номера, что делается путем применения функции map ниже к нашему IntStream.
Integer.toString(num).chars().map(c -> c-'0');
Преобразование потока int в массив int с помощью toArray ()
Integer.toString(num).chars().map(c -> c-'0').toArray();