如何将int转换为数字的数字

时间:2018-06-01 09:18:24

标签: java arrays lambda java-8 java-stream

我有一个数字,例如“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 :(得分:6)

您当前的解决方案可能是最简洁的,但如果真的想要使用Java8,您可以使用以下代码段:

int[] array = Arrays.stream(String.valueOf(numbersToArray).split(""))
    .mapToInt(Integer::parseInt)
    .toArray();

答案 1 :(得分:6)

 int[] result = String.valueOf(numbersToArray)
            .chars()
            .map(Character::getNumericValue)
            .toArray();

答案 2 :(得分:3)

使用java-8可以做到:

Pattern.compile("")
       .splitAsStream(String.valueOf(numbersToArray))
       .mapToInt(Integer::parseInt)
       .toArray();