字符数组越界问题~下标正确怎么还是有异常?????

朔北冥 2016-10-24 09:07:49
代码:
public static Result statuChange(Result analyResult,int j,char[] cArray,RecordHead record)
{
int i=analyResult.statu;





analyResult.statu=statuArray[i][j];
int next=analyResult.statu;
analyResult.processStr+=String.valueOf(i)+"--->"+String.valueOf(next);
if(i!=0&&next==0)
{
System.out.println("************statuchange*********");


analyResult.outStr=new String(cArray,analyResult.begin,analyResult.end+1);

switch(i)
{
case 1: resultStatu1(analyResult,record);break;
case 2:
case 3:
case 4: resultStatu4(analyResult,record);break;
case 5:
case 6: resultStatu6(analyResult,record);break;
case 10: resultStatu10(analyResult,record);break;
}
analyResult.begin=analyResult.end+1;
analyResult.end--;
analyResult.statu=0;
analyResult.outStr=null;
analyResult.processStr=" ";
analyResult.errorStr=null;
}

if(i==0&&next==0)
{
analyResult.begin++;
}
if(next==-1)//错误状态处理
{
warngHading(analyResult,i,cArray,record);
}

return analyResult;
}



...全文
345 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

new String(char[],int begin,int length);
第三个参数应该是长度吧 analyResult.end+1=18 从下边16的位置开始,到16+18的位置为止,组成一个字符串,而char[]的最大下标小于34的,当然越界了
nikyotensai 2016-10-26
  • 打赏
  • 举报
回复
qq_15654157 2016-10-24
  • 打赏
  • 举报
回复
看你的输出 length = 33 啊,那最后一位的下标是32啊 数组的下标是从0开始的, int[] ints = [1,2,3,4,5,6,7,8,9,10,11,12] 这个数组的length=12 ints[0] ==1 ; ints[11]==12
朔北冥 2016-10-24
  • 打赏
  • 举报
回复
求助。。。。。。
朔北冥 2016-10-24
  • 打赏
  • 举报
回复
引用 5 楼 逝_去_的_光_阴的回复:
[quote=引用 4 楼 emoheithree 的回复:] [quote=引用 3 楼 bcsflilong的回复:]数据长度33 你取了34这个下标的数 这样一定是越界了
我输出了数组长度:length=33,取数组16(begin)至18(end+1)[/quote] 后面那个参数是长度不是结束下标…… end+1应该写成end-begin[/quote] 原来如此,谢谢。 (づ ●─● )づ
  • 打赏
  • 举报
回复
引用 4 楼 emoheithree 的回复:
[quote=引用 3 楼 bcsflilong的回复:]数据长度33 你取了34这个下标的数 这样一定是越界了
我输出了数组长度:length=33,取数组16(begin)至18(end+1)[/quote] 后面那个参数是长度不是结束下标…… end+1应该写成end-begin
朔北冥 2016-10-24
  • 打赏
  • 举报
回复
引用 3 楼 bcsflilong的回复:
数据长度33 你取了34这个下标的数 这样一定是越界了
我输出了数组长度:length=33,取数组16(begin)至18(end+1)
bcsflilong 2016-10-24
  • 打赏
  • 举报
回复
数据长度33 你取了34这个下标的数 这样一定是越界了

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧