数组索引导致的字符串异常

时间:2015-02-12 06:45:01

标签: java html parsing jsoup

我有一个循环,它启动一个字符串数组,然后剪切它们以提供所需的信息:

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)

这是什么以及如何解决?我已经尝试将数组大小更改为更少,但这不起作用。

2 个答案:

答案 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!