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呢?
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(",");
a[i]=new double[s2.length];
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();
}
}}
有错,定义数组时,要给出数组长度
改为:double[][] a=new double[s1.length][2];
public static void main(String[] args){
String s="1,2;3,4;5,6;7,8";
String[] s1=s.split(";");
List<Double> list=new ArrayList<Double>();
for(int i=0;i <s1.length;i++){
String[] s2=s1[i].split(",");
for(int j=0;j <s2.length;j++){
list.add(Double.parseDouble(s2[j]));//此处标记
}
}
for(int j=0;j <list.size();j++){
System.out.println(list.get(j));
} }