【发布时间】:2015-05-19 04:08:06
【问题描述】:
大家好,在制作文字益智游戏时,我在仔细检查垂直和水平方向是否都是我当前保存到数组列表的文件中的单词时遇到了问题。
String letterSize = "" + size;
makeLetterWordList(letterSize);
boolean finished = false;
while ( !finished ) {
finished = true;
for (int i = 0; i < size; i++) {
int randomYWord = randomInteger(wordList.size());
String item = wordList.get(randomYWord);
puzzleListY.add(item);
}
for (int i = 0; i <= puzzleListY.size(); i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j <= puzzleListY.size(); j++) {
sb.append(puzzleListY.get(j).charAt(j));
}
randomXWord = sb.toString();
if (!wordList.contains(randomXWord)) {
finished = false;
break;
} else {
puzzleListX.add(randomXWord);
}
}
}
产生的错误如下:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
我正在努力寻找代码中的错误,谁能帮助我?
【问题讨论】:
-
错误中提到您的班级的第一行是什么?
-
一个大小为 3 的数组有索引 0、1、2.. 找出你的代码为什么试图访问不存在的索引 3。这是一个编码错误;这是一个单独的开发人员任务.. 使用调试器(或铅笔和纸)可能有助于跟踪程序。
标签: java arrays for-loop while-loop stringbuilder