【发布时间】:2012-12-01 12:14:15
【问题描述】:
我已经一遍又一遍地查看了这段代码,但看不到这是在哪里发生的它们出来了,仍然会出现错误,但是如果我摆脱了两个代码都可以正常工作,但是它们是必要的,并且它们之前确实有效。任何帮助表示赞赏。
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";
}
}
【问题讨论】:
-
请包含完整的堆栈跟踪。
-
哪一行抛出异常?
i的值是多少?数组的长度是多少? -
我们需要更多的周边代码来告诉你错误在哪里。
-
lines[i+1]很可能不存在 ->ArrayIndexOutOfBoundsException -
我们能看到:(1)你会使用的输入示例吗?
lines[]的转储? (2) 堆栈跟踪?由于您使用的许多代码都是对索引的直接引用,因此很难判断您是否在没有输入的情况下越界。如果lines[i]或lines[i+1]从未正确初始化,.charAt(4)可能会越界。你是在一个for循环中单步执行吗?lines[i+1]可能会在最后一次迭代中超出范围。
标签: java if-statement java-me char