我有一个字符串:
"1 2 3 4 5 6 7 8 9"
,我希望将其添加到我的数组中,使其变为:
[1,2,3,4,5,6,7,8,9]
但是,当我运行代码时,
int[] leftValues = new int[9];
for (String w:left.split("\\s",0)){
for (int i = 0; i<9; i++){
leftValues[i] = Integer.valueOf(w);
}
}
我的输出给了我:
[9,9,9,9,9,9,9,9,9]
我可以知道我在做什么错吗?
答案 0 :(得分:3)
您的嵌套循环首先将第一个整数分配给数组的所有索引,然后将第二个整数...分配给最后一个整数(9)。因此,您的阵列最终仅保留9s。
您需要一个循环:
int i = 0;
for (String w : left.split("\\s",0)) {
leftValues[i] = Integer.valueOf(w);
i++;
}
或
int i = 0;
for (String w : left.split("\\s",0)) {
leftValues[i++] = Integer.valueOf(w);
}
答案 1 :(得分:1)
这是Java 8简洁的实现方式
String numbers = "1 2 3 4 5 6 7 8 9";
int[] integers = Arrays.stream(numbers.split("\\s"))
.mapToInt(s -> Integer.parseInt(s))
.toArray();