线程“main”中的异常java.lang.IndexOutOfBoundsException:索引:1,大小:1

时间:2014-11-04 04:28:57

标签: java oracle parsing indexoutofboundsexception

我的程序中出现以下异常:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at id.co.ptap.text.ParseText.main(ParseText.java:370)

这是相关代码:

        x = first+";"+allHeader.get(count) + strBody + "\n"; //line 370
        bw.write(x);
        System.out.println(x);

            if (ketemu) {                   
                count++;
                ketemu = false;
            }

3 个答案:

答案 0 :(得分:2)

根据错误allHeaderArrayList只有一个项目,count == 1allHeader.get(count)接受的最大索引为allHeader.size() - 1

答案 1 :(得分:1)

allHeader.get(count)

会为您提供例外

检查计数的值。

因为您正在尝试访问没有与ArrayList匹配的索引号的值,您必须从ArrayList访问小于ArrayList大小的值。 (即count的值应小于ArrayList的大小)

count < ArrayList.size()

答案 2 :(得分:1)

ArrayList索引从0开始,最多到size() - 1。因此,如果您有1个项目,则它位于索引0,而不是1。将以下行更改为:

**x = first+";"+allHeader.get(count-1) + strBody + "\n";** //line 370

这将得到ArrayList中的最后一项,假设count等于allHeader.size()