我有一个字符串:"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]我可以知道我在这里做错了什么吗?
2 回答
慕慕森
TA贡献1856条经验 获得超17个赞
嵌套循环首先将第一个整数分配给数组的所有索引,然后将第二个整数 ... 分配给最后一个整数 (9)。因此,您的数组最终只能容纳 9 秒。
您需要一个循环:
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);
}
料青山看我应如是
TA贡献1772条经验 获得超8个赞
以下是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();
添加回答
举报
0/150
提交
取消