Java二维数组元素相加问题

package retestC8;

public class Summation {

public static void main(String[] args) {
String str[][]=new String[][]{{"1","2"},{"3","4"},{"5","6"},{"7","8"}};//怎样将这个二维的字符串型数组里面的数值全部加起来?
int sum=0;
for(int i=0;i<str.length;i++){
for(int j=0;j<str.length;j++){
int myint=Integer.parseInt(str[i][j]);
sum=sum+myint;
}
}
System.out.println(sum);
}
}
//就这样运行会报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at retestC8.Summation.main(Summation.java:10)

 package retestC8;

public class Summation { 
 public static void main(String[] args) {
  String str[][]=new String[][]{{"1","2"},{"3","4"},{"5","6"},{"7","8"}};
  //怎样将这个二维的字符串型数组里面的数值全部加起来?
  int sum=0;  
  for(int i=0;i<str.length;i++){  
   for(int j=0;j<2;j++){  
    int myint=Integer.parseInt(str[i][j]);    
    sum=sum+myint; 
   }  
  }  
  System.out.println(sum); 
 }
}


修改之后的代码   内层for循环 循环的次数应该是一个下标对应二位数组的值的元素个数。。   

 例如:String str[][]=new String[][]{{"1","2"},{"3","4"},{"5","6"}
 外层循环 i=0 的时候  值是 {"1","2"}
 内存循环就只能是0跟1才能取得到值  如果值是{"1","2","3"}  那么内存循环就只能是0 跟1跟2才能取得到值
 
 不知道我说的你能理解不.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-04
内层循环遍历的数组是str[i],所以循环次数应该是str[i].length
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:这个错误是数组下标越界
把for(int j=0;j<str.length;j++)改成for(int j=0;j<str[i].length;j++)就好了,
第2个回答  2014-01-04
for(int i=0;i<str.length;i++){ for(int j=0;j<str[i].length;j++){ int myint=Integer.parseInt(str[i][j]); sum=sum+myint; }
}
java二维数组中,每一行就是一个数组。str.length取的是行数,str[i].length得到 的是第[i]行的元素个数
第3个回答  2014-01-04
数组下标越界
for(int i=0;i<str.length;i++){ for(int j=0;j<str.length;j++){
第二个str.length应该是str[0].length
相似回答