代码如下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)
指针异常

解决方案 »

  1.   


    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;
    }
    }
      

  2.   

    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]);
    }
    }