【问题标题】:String exception due to array index由于数组索引导致的字符串异常
【发布时间】:2015-02-13 12:24:03
【问题描述】:

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

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)

这是什么,我该如何解决?我尝试将数组大小更改为更小,但没有奏效。

【问题讨论】:

    标签: java html parsing jsoup


    【解决方案1】:

    改变这个

    String[] str = new String[24];
    

    到这里

    String[] str = new String[ref.length];
    

    您的ref 数组可能包含25 或更多项目。因此,一旦循环遍历第 25 个元素(即索引为 24),您就会得到一个 ArrayIndexOutOfBoundsException: 24

    【讨论】:

    • 如果您发布涵盖ref 数组的整个方法代码会有所帮助。
    【解决方案2】:

    您正在迭代 referenceIds,因此您应该使用此数组/列表的大小,因为它可能会改变:

    String[] str = new String[referenceIds.lenght];
    

    您可能还想在 for 循环之外声明 String[] str

    切!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-13
      • 2011-09-08
      相关资源
      最近更新 更多