我创建了一个大小为45的arraylists数组。由于某种原因,我得到一个ArrayOutOfBoundException。
这是我收到错误的地方:
String temp;
Scanner sc = new Scanner(str1);
while(sc.hasNext())
{
temp = sc.next();
int len = temp.length();
if(len > 0)
wordsByLen[len - 1].add(temp); //throwing the error here with exception of 59
}
提前感谢您的帮助!
答案 0 :(得分:0)
您是否正确初始化了数组wordsByLen
?我怀疑不是。
我认为您需要做的是使用正确的长度初始化数组,然后使用每个可能的字长的集合。例如(伪代码)
for (int i = 0; i < MAXWORDLENGTH; i++) {
wordsByLen[i] = new ArrayList<String>();
}
我可能会改用Map<Integer,List<String>>
。你必须以类似的方式初始化它,但它将是一个更可靠的机制。您不能对可以记录单词的最大字符数有任意限制。