繁体   English   中英

java字符串索引超出范围

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM