A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冷漠无天 中级黑马   /  2013-11-23 16:30  /  1317 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请各位看下我的程序,为什么老是说出现数组越界的问题
实现的功能是将一个字符串拆成int型的数组。谢谢啦。
public class E {
public static void main(String args[]){
  int[][] a;
  String s = "1,2,3;4,5;6,7,8";
  String[] sfirst = s.split(";");
  a = new int[sfirst.length][];
  for(int i=0;i<sfirst.length;i++){
   String[] ssecond = sfirst.split(",");  
   for(int j=0;j<=ssecond.length;j++){
    a = new int[ssecond.length];
    a[j] = Integer.parseInt(ssecond[j]);
   }   
  }
  for(int i=0;i<=a.length;i++){
   for(int j=0;j<=a.length;j++){
    System.out.print(a[j]+" ");
   }
   System.out.println();
  }  
}
}

点评

亲,如果实在是问题太多,并需要马上发表 请整理在一个帖子内发表,谢谢合作  发表于 2013-11-23 16:56
FFF
请不要短时间内一下只发太多的问题!如果你真的没有问题,可以发一些学习中的感想。  发表于 2013-11-23 16:42

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

8 个回复

倒序浏览
for(int j=0;j<=ssecond.length;j++){
这一行的循环判断语句有问题
回复 使用道具 举报
本帖最后由 吴琼cola 于 2013-11-23 17:53 编辑

1.for(int i=0;i<sfirst.length;i++) 问题出在这里,sfrist的长度为2,用<数组只能循环两次,String s = "1,2,3;4,5;6,7,8";你的字符串切割成3段,你循环两次只能操作1,2,3;4,5,后面的6,7,8就漏掉了。应该用<=。如:.for(int i=0;i<=sfirst.length;i++)  
2. String[] ssecond = sfirst.split(",");   这一句一定要写在循环外,不要循环一次,就赋值一次,这样效率很低。
回复 使用道具 举报

数组ssecond的角标会越界,ssecond[j]中的j会取到ssecond.length,这不就越界了吗?顺便补充下:
对于你的需求,我想有种方法会更合适。
public class E{
    public static void main(String args[])){
          String s = "1,2,3;4,5;6,7,8";
          String[] strs = s.spilt("[,?;?]");
          int [] arr = new int[strs.length];
          for(int i =0;i<strs.length;i++){
               int value = Integer.parseInt(strs);
               arr = value;
          }



   }
}
回复 使用道具 举报
还不到时候 发表于 2013-11-24 08:50
数组ssecond的角标会越界,ssecond[j]中的j会取到ssecond.length,这不就越界了吗?顺便补充下:
对于你的 ...

最后两行写错了:
int value = Integer.parseInt(str);
arr = value;
回复 使用道具 举报
还不到时候 发表于 2013-11-24 08:52
最后两行写错了:
int value = Integer.parseInt(str);
arr = value;

int value = Integet.parseInt(strs【i】);
arr【i】= value;
回复 使用道具 举报
大哥啊我是问题攒在一起发表的不喜欢一个个发表,这样也不对啦?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马