[英]java string index out of bounds
我遍历了这段代码,看不到它在哪里发生,它不会每次都发生,只有在我两次运行帖子后才会发生,但是我试图通过注释掉它们依次轮流消除它们,仍然会给出错误,但是如果我摆脱了我的两个代码,都可以正常工作,但它们是必需的,并且它们确实可以工作。 任何帮助表示赞赏。
if(lines[i].length() > 10)
{
if(lines[i].charAt(4) == '-' && lines[i+1].charAt(4) == '-')
{
lines[i] = "\nComment";
}
}
if(lines[i].length() > 10)
{
if(lines[i].charAt(4) == '-' && lines[i+1].charAt(4) != '-' && !lines[i-1].equals("\nComment"))
{
lines[i] = "\nPost";
}
}
您的代码不检查
lines[i+1]
存在, lines[i-1]
存在,并且 lines[i+1]
的长度至少为五。 当i
为零或lines.length-1
,或者当上一行/下一行中的少于五个字符时,这会中断。
在lines[i+1].charAt(4)
:如果lines[i+1]
少于5个字符怎么办?
您只测试了lines[i]
的长度,而您正在访问lines[i+1].charAt(4)
,如果长度小于5,则可能会出现此问题。
使用它们之前,请检查所有变量的长度。 您可以更改索引,但不进行必要的检查(空,长度和数组索引检查)。
特别是在访问时:
lines[i+1]
和
lines[i-1]
我们确定+1和-1行是否在10个字符范围内?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.