Я думаю, что это будет самый полезный способ получения цифр:
public int[] getDigitsOf(int num)
{
int digitCount = Integer.toString(num).length();
if (num < 0)
digitCount--;
int[] result = new int[digitCount];
while (digitCount-- >0) {
result[digitCount] = num % 10;
num /= 10;
}
return result;
}
Тогда вы можете получить цифры простым способом:
int number = 12345;
int[] digits = getDigitsOf(number);
for (int i = 0; i < digits.length; i++) {
System.out.println(digits[i]);
}
или более просто:
int number = 12345;
for (int i = 0; i < getDigitsOf(number).length; i++) {
System.out.println( getDigitsOf(number)[i] );
}
Обратите внимание, что последний метод слишком долго вызывает метод getDigitsOf.Так будет медленнее.Вы должны создать массив int, а затем вызвать метод getDigitsOf один раз, как во втором блоке кода.
В следующем коде вы можете вернуться к процессу.Этот код соединяет все цифры в одно целое:
public int digitsToInt(int[] digits)
{
int digitCount = digits.length;
int result = 0;
for (int i = 0; i < digitCount; i++) {
result = result * 10;
result += digits[i];
}
return result;
}
Оба метода, которые я предоставил, работают и для отрицательных чисел.