我的程序中出现以下异常:
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;
}
答案 0 :(得分:2)
根据错误allHeader
,ArrayList
只有一个项目,count == 1
。 allHeader.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()