使用“for循环”添加数组值时发生异常

时间:2017-11-19 07:34:23

标签: java android arrays

我这里有一些代码

 String array[]=new String[5];
    for(int i=0;i<array.length;i++){
        array[i]= "item "+String.valueOf(i);
        i++;
    }

这是我在应用程序崩溃后获得的日志消息

java.lang.IndexOutOfBoundsException : Invalid array range: 5 to 5

你们能解释一下为什么会这样吗?我只想声明一个数组并使用for循环初始化数组元素,只是不知道为什么我的代码不起作用。谢谢

4 个答案:

答案 0 :(得分:3)

因为键索引比循环中的索引数组更多。

String array[]=new String[5];
    for(int i=0;i<array.length;i++){
        array[i]= "item "+String.valueOf(i);

    }

答案 1 :(得分:2)

删除额外的i ++ ..除非你有一些目的,否则它已经多余了。

String array[]=new String[5];
for(int i=0;i<array.length;i++){
        array[i]= "item "+String.valueOf(i);
        //i++; //remove this.. it already redundant except you have some purpose
}

它的java.lang.IndexOutOfBoundsException : Invalid array range: 5 to 5因为计数器已经超过你的字符串的大小而只有5 ..

使用ArrayList代替

答案 2 :(得分:2)

这样做:

String array[]=new String[5];
for(int i=0;i<array.length;i++){
    array[i]= "item "+String.valueOf(i);
}

第二个i ++导致您的索引超出范围。

答案 3 :(得分:1)

不要将'i'值增加两次,这会导致此问题。

var orderedBoomarks = WordDocument.Bookmarks.Cast<Bookmark>()
                          .OrderBy(d => d.Start).ToList();

您可以使用String array[]=new String[5]; for(int i=0;i<array.length;i++){ array[i]= "item "+String.valueOf(i); //i++; //remove this.. } Array[]Collections取代ArrayList<String>