即使我的程序给了我想要的结果,如何修复此IndexOutOfBoundsException?

时间:2016-08-02 00:13:06

标签: java

我制作了一个小程序,随机选择一个给定的单词,然后将其洗牌。该程序给我正确的结果,但我得到一个IndexOutOfBoundsException。我如何解决它。我认为问题是从第16行开始向下。

{{1}}

2 个答案:

答案 0 :(得分:2)

Java集合和数组被编入索引0 - 大小 - 1.您将循环从0开始 - 集合的大小导致超出范围的异常。

从此更改此循环。

for (int p=0;p<=lnk.size();p++)

到此

for (int p=0;p<lnk.size();p++)

修改

删除此循环:

for (int i=0;i<=endNum;i++)

否则你会洗掉两个“泡泡”字样。以及“摄像机”的三个字。

答案 1 :(得分:0)

变化:

for (int p=0;p<=lnk.size();p++) {
    char addLet=lnk.get(p);
    String wholeWord=""+addLet;
    System.out.print(wholeWord);
}

为:

for (int p = 0;p < lnk.size();p++) {
    char addLet=lnk.get(p);
    String wholeWord=""+addLet;
    System.out.print(wholeWord);
}

我已从=移除了<=,因为如果你一直迭代到lnk.size(),你就会超出数组的范围,