以下while循环可以转换为IntStream
吗?
此处modifiedNumber
是int
。我想将它重构为java8。
while (modifiedNumber > 0) {
tempNumber = (int) ((modifiedNumber % 10) * Math.pow(10, count));
alist.add(tempNumber);
modifiedNumber = modifiedNumber / 10;
count++;
}
答案 0 :(得分:0)
嗯,不太确定用于代码共享中使用的变量的声明,但是要将上面的代码转换为使用IntStream
,你可以尝试类似(声明我的):
final int[] modifiedNumber = {123};
final int len = String.valueOf(modifiedNumber[0]).length();
ArrayList<Integer> aList = new ArrayList<>();
final int[] count = {0};
IntStream.range(0,len).forEach(mn -> {
double pow = Math.pow(10, count[0]);
int tempNumber = (int) ((modifiedNumber[0] % 10) * pow);
aList.add(tempNumber);
modifiedNumber[0] = modifiedNumber[0] / 10;
count[0]++;
});
System.out.println(aList);
注意 :大多数整数值都会转换为最终的单值数组,以便在流中使用。
答案 1 :(得分:0)
这是一种可行的方法。您还可以将多个数字传递给 void print(int a)
{while(a!=1)
{
printf("%d",a);
a--;
print(a);
}}
,输出将是解析所有这些数字的流。
Stream.of()