Как использовать модуль в цикле while для получения отдельных цифр целого числа?

Я надеюсь найти способ использовать цикл while (а не цикл for), чтобы получить отдельные цифры целого числа, введенные через командную строку. Прямо сейчас у меня жестко закодировано, как получить отдельные цифры, если введено четырехзначное целое число, но если я введу пятизначное число, это, очевидно, не сработает. Я думаю, что цикл while должен быть в состоянии исправить это, но я не уверен, как...

Вот код, который у меня есть до сих пор


person Bianca Fuller    schedule 17.10.2014    source источник
comment
Вам понадобится массив или что-то вроде List. Вы не сможете сделать это с отдельными переменными с именами digit1, digit2 и т. д.   -  person ajb    schedule 18.10.2014
comment
stackoverflow.com/a/3389287/1114171   -  person T I    schedule 18.10.2014


Ответы (2)


Попробуй это:

List<Integer> digits = new ArrayList<Integer>();
while (number > 0)
{
    digits.add(number%10);
    number /= 10;
}
person barak manos    schedule 17.10.2014

Попробуйте это:

int number = 567;
int[] digits = new int[String.valueOf(number).length()];
while (number > 0)
{
    digits[String.valueOf(number).length()-1] = number % 10;
    number /= 10;
}
System.out.println(Arrays.toString(digits));

Возможно, это не самое элегантное решение, но оно даст вам цифры в номере в том же порядке, что и в номере. Пример 12345 присвоит массиву значение [1, 2, 3, 4, 5] при выводе.

person Shadow    schedule 18.10.2014