Exception in thread "main" java.lang.StringIndexOutOfBoundsException

运行的时候总是报错。一个简单地词法分析器。错误原因:Exceptioninthread"main"java.lang.StringIndexOutOfBoundsExce... 运行的时候总是报错。一个简单地词法分析器 。 错误原因:Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 278 at java.lang.StringBuffer.charAt(Unknown Source) at WordAnalysis.Analysis(WordAnalysis.java:58) at WordAnalysis.main(WordAnalysis.java:107)

用到charAT函数的代码:
public void Analysis(){
int i=0;
char ch;
while(i<buffer.length()){
ch=buffer.charAt(i);
if(isLeter(ch))
{
StringBuffer temp=new StringBuffer() ;
temp.append(ch);
ch=buffer.charAt(++i);
while(isLeter(ch)||isDigit(ch))
{
temp.append(ch);
ch=buffer.charAt(++i);
}
if(isKeyword(temp.toString()))
System.out.println("( 1,“ "+temp+" ”)");
else
System.out.println("( 2,“ "+temp+" ”)");
}
else if((ch==';')||(ch==',')||(ch=='(')||(ch==')')||(ch=='{')||(ch=='}')||(ch=='"'))//判断是否为分隔符
{
System.out.println("( 5,“ "+ch+" ”)");
i++;
}
展开
 我来答
百度网友dfbed270c
推荐于2018-03-01 · TA获得超过335个赞
知道小有建树答主
回答量:328
采纳率:0%
帮助的人:133万
展开全部
上面的错误可能是因为
String.length()<278;
而你又要取index>=278的字符从而抛出上面异常
String其实是没有限制的,而是当String太大了,超过JVM的自身的内存后会抛出
java.lang.OutOfMemoryError错误,

java.lang.StringIndexOutOfBoundsException: String index out of range: 278
”并不能说明String有长度限制
百度网友81ae37efe0
2014-03-28 · TA获得超过159个赞
知道小有建树答主
回答量:239
采纳率:50%
帮助的人:126万
展开全部
// 字符串索引超出边界了

/* 
API: 
    此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小。对诸如 charAt 
的一些方法,当索引等于字符串的大小时,也会抛出该异常。
    
 */
 
// 可能出现问题的语句
while(isLeter(ch)||isDigit(ch)){
  temp.append(ch);
  // 这里有可能字符串索引越界, 注意你的while入口条件 : i<buffer.length()
  ch=buffer.charAt(++i); 
}

// 错误示例:
StringBuffer buffer = new StringBuffer("abc");
// 当进入while之后, 假设此时 i == buffer.length()-1 --> 2
// 当程序试图执行下列代码时抛出异常
ch=buffer.charAt(++i);
// ch=buffer.charAt(3);


希望能帮助你

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qfxr7260
2014-03-27 · TA获得超过157个赞
知道答主
回答量:174
采纳率:100%
帮助的人:44.4万
展开全部
你文件的58行是哪一行?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式