Как преобразовать int в число Array по номеру - PullRequest
0 голосов
/ 01 июня 2018

У меня есть одно число, например, «1256», как я могу преобразовать его в массив?

На самом деле, я использую конструктор класса, где я его храню.

public SecretBlock(int numbersToArray) {
    this.arrayOfNumbers = new int[AMOUNT];
    for (int i = AMOUNT - 1; i >= 0; i--) {
        this.arrayOfNumbers[i] = numbersToArray % 10;
        numbersToArray /= 10;
    }
}

Есть ли какое-нибудь хорошее / адекватное решение, которое может использовать Java 8 Stream?

Ответы [ 3 ]

0 голосов
/ 01 июня 2018

Используя java-8, можно сделать:

Pattern.compile("")
       .splitAsStream(String.valueOf(numbersToArray))
       .mapToInt(Integer::parseInt)
       .toArray();
0 голосов
/ 01 июня 2018
 int[] result = String.valueOf(numbersToArray)
            .chars()
            .map(Character::getNumericValue)
            .toArray();
0 голосов
/ 01 июня 2018

Ваше текущее решение, возможно, является наиболее кратким, но если вы действительно хотите использовать Java8, вы можете использовать следующий фрагмент:

int[] array = Arrays.stream(String.valueOf(numbersToArray).split(""))
    .mapToInt(Integer::parseInt)
    .toArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...