日期:2014-05-20  浏览次数:20783 次

很简单的一个小程序出错了

public class StringToDouble {
public static void main(String[] args){
String s="1,2;3,4;5,6;7,8";
String[] s1=s.split(";");
double[][] a=new double[s1.length][];

for(int i=0;i<s1.length;i++){
String[] s2=s1[i].split(",");
for(int j=0;j<s2.length;j++){
//System.out.print(s2[j]);
a[i][j]=Double.parseDouble(s2[j]);//此处标记
}
}

for(int i=0;i<s1.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.print(a[i][j]);
}System.out.println();
}
}

}




这个程序为什么会在标记处抛出NullPointerException呢?


------解决方案--------------------
double[][] a=new double[s1.length][];
有错,定义数组时,要给出数组长度
改为:double[][] a=new double[s1.length][2];