【发布时间】:2015-08-23 19:08:20
【问题描述】:
if(line.get(count).substring(line.get(count).indexOf(p1)).equals(p1.substring(0, p1.indexOf(" ")))) {
count++;
if(line.get(count).contains(p1.substring(p1.indexOf(" ") + 1, p1.length())))
System.out.println((count-1) + " " + (line.get(count-1).indexOf(p1)) + " " + p1);
}
Line 是大小为 65008 的数组列表,我正在尝试测试一个名称出现在文件的两行上,名字出现在一行上,姓氏出现在第二行上。但是,索引越界异常发生在第一个 if 语句中。当我试图比较子字符串时,我无法意识到我是否在这里做错了导致这个问题。有人可以提出解决这个问题的方法吗?这些 if 语句很长,但我稍后会尝试调整它们。
【问题讨论】:
-
您确定
line.get(count)包含p1并且p1包含" "? -
提供您的堆栈跟踪。
-
旁注:在您花费数小时调试复杂代码之后不要对其进行调整。确保从一开始就容易阅读和理解。因为那时……您可能不需要数小时的调试和求助于 SO 来获得帮助。此外:请后退一秒;并重新阅读您的问题。你真的认为你在表达对这个社区的尊重吗:“我知道,我的代码很难阅读;我稍后会修复它;与此同时,亲爱的互联网,请帮助我找到那个丑陋的代码中的错误意大利面条代码在这里”
-
是的,这实际上是我的最后一次测试,我在使用类似的 line.get(count) 之前做了类似的测试,因此 p1 被初始化为一个名字,名字和姓氏之间有空格。
标签: java arraylist substring indexoutofboundsexception