Если вы уже используете Java 8 и вам захотелось впоследствии выполнить с ней некоторые агрегированные операции, рассмотрите возможность использования String#chars() для получения IntStream результата.
Если вы хотите сохранить порядок цифр от наименее значимых (index[0]) до наиболее значимых (index [n]), вам нужен следующий обновленный getDigits():
/** * split an integer into its individual digits * NOTE: digits order is maintained - i.e. Least significant digit is at index[0] * @param num positive integer * @return array of digits */ publicstatic Integer[] getDigits(int num) { if (num < 0) { returnnewInteger[0]; } List<Integer> digits = newArrayList<Integer>(); collectDigits(num, digits); Collections.reverse(digits); return digits.toArray(newInteger[]{}); }
Ответ 4
Я не видел, чтобы кто-нибудь использовал этот метод, но у меня он сработал, короткий и приятный: