Запись цифр числа в массив

79
24 декабря 2021, 14:20

Задание: записать число N в массив наоборот. Например:

N = 348597

А массив должен иметь вид:

[7,9,5,8,4,3]

Реализация вывода числа наоборот понятна, но как разбить число int, не знаю.

Answer 1

Можно использовать метод IntStream.iterate​(seed,hasNext,next):

int n = 348597;
int[] arr = IntStream
        // начинаем с 'n', каждое последующее число -
        // это текущее число, делённое на 10
        // получаем [348597, 34859, 3485, 348, 34, 3]
        .iterate(n, i -> i / 10 > 0 || i % 10 > 0, i -> i / 10)
        // получаем последнюю цифру
        .map(i -> i % 10)
        // собираем в массив
        .toArray();
// выводим массив
System.out.println(Arrays.toString(arr)); // [7, 9, 5, 8, 4, 3]
Answer 2
public static void main(String[] args) {
    int[] arr = new int[6];
    int number = 348597;
    for (int i = 0; i < 6; ++i) {
        arr[i] += number % 10;
        number /= 10;
    }
    for (int i : arr) {
        System.out.print(i);
    }
    System.out.println();
    System.out.println(arr[0]);
    System.out.println(arr[5]);
}
Answer 3

Это легко решается рекурсией:

public static int[] getRevertedDigits(int n) {
    if (n < 0) {
        throw new IllegalArgumentException("negative numbers not supported");
    }
    return getRevertedDigits(n, 1);
}
private static int[] getRevertedDigits(int n, int size) {
    int[] res;
    int d = n / 10;
    if (d > 0) {
        res = getRevertedDigits(d, size + 1);
    } else {
        res = new int[size];
    }
    res[size - 1] = n % 10;
    return res;
}
READ ALSO
Структура модульной программы Java в Intellij

Структура модульной программы Java в Intellij

Создаю модульную программу в ide Intellij, но при компиляции не видит пакеты из других модулей

186
Можно ли на флексбоксах сделать неравномерную плитку?

Можно ли на флексбоксах сделать неравномерную плитку?

Есть блоки как на картинкеМожно ли на флексбоксах сверстать такие блоки, не оборачивая

79
Почему z-index не реагирует?

Почему z-index не реагирует?

Я спозиционировал тёмное меню, которое задано с помощью position: absolute; z-index: 1, оно находится выше всех, но я хочу, чтобы кнопка, которая была в header...

143