我有一个循环,它启动一个字符串数组,然后剪切它们以提供所需的信息:
for (Element referenceId: referenceIds){
ref[i] = referenceId.attr("href");
String[] str = new String[24];
str[i] = ref[i].substring(ref[i].lastIndexOf("listing-") + 8, ref[i].indexOf(".htm"));
System.out.println(str[i]);
i++;
}
但是我收到错误导致程序崩溃:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 24
at Jobs.main(Jobs.java:30)
这是什么以及如何解决?我已经尝试将数组大小更改为更少,但这不起作用。
答案 0 :(得分:1)
更改此
String[] str = new String[24];
到这个
String[] str = new String[ref.length];
您的ref
数组可能包含25
个或更多项。因此,只要循环遍历第25个元素(即索引为24
),就会得到ArrayIndexOutOfBoundsException: 24
。
答案 1 :(得分:1)
你正在迭代referenceIds
所以你应该使用这个数组/列表的大小,它可能会改变:
String[] str = new String[referenceIds.lenght];
您可能还想在for循环之外声明String[] str
。
CHEARS!