我有一個字符串:"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
提交
取消