我试图将整数字符串添加到数组中,但这是不正确的

我有一个字符串:


"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]

我可以知道我在这里做错了什么吗?


倚天杖
浏览 102回答 2
2回答

慕慕森

嵌套循环首先将第一个整数分配给数组的所有索引,然后将第二个整数 ... 分配给最后一个整数 (9)。因此,您的数组最终只能容纳 9 秒。您需要一个循环:int i = 0;for (String w : left.split("\\s",0)) {&nbsp; &nbsp; leftValues[i] = Integer.valueOf(w);&nbsp; &nbsp; i++;}或int i = 0;for (String w : left.split("\\s",0)) {&nbsp; &nbsp; leftValues[i++] = Integer.valueOf(w);}

料青山看我应如是

以下是Java 8简洁地做到这一点的方法String&nbsp;numbers&nbsp;=&nbsp;"1&nbsp;2&nbsp;3&nbsp;4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9";int[]&nbsp;integers&nbsp;=&nbsp;Arrays.stream(numbers.split("\\s")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.mapToInt(s&nbsp;->&nbsp;Integer.parseInt(s)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.toArray();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java