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

第一次发帖,求大神看看为什么出现空指针
代码如下

public class Test {
public static void main(String args[]) {
String s = "1,2;3,4,5;6,7,8,9;3,5";
double[][] d = back(s);
for(int i=0; i<d.length; i++) {
for(int j=0; j<d[i].length; j++) {
System.out.print(d[i][j] + " ");
}
System.out.println();
}
}

static double[][]  back (String s) {
String [] arr1 = s.split(";");
String [] arr2 ;
double[][] d = new double[arr1.length][];
for(int i = 0; i<arr1.length; i++) {
arr2 = arr1[i].split(",");
for(int j=0; j<arr2.length; j++) {
d[i][j] = Double.parseDouble(arr2[j]);
}

}
return d;

}
}




Exception in thread "main" java.lang.NullPointerException
at Test.back(Test.java:21)
at Test.main(Test.java:5)
指针 异常

------解决方案--------------------

static double[][] back(String s) {
String[] arr1 = s.split(";");
String[] arr2;
double[][] d = new double[arr1.length][];
for (int i = 0; i < arr1.length; i++) {
arr2 = arr1[i].split(",");
d[i] = new double[arr2.length];//加一初始化。
for (int j = 0; j < arr2.length; j++) {
d[i][j] = Double.parseDouble(arr2[j]);
}
}
return d;
}
}

------解决方案--------------------
		for (int i = 0; i < arr1.length; i++) {
arr2 = arr1[i].split(",");
d[i] = new double[arr2.length];
for (int j = 0; j < arr2.length; j++) {
d[i][j] = Double.parseDouble(arr2[j]);
}
}