public class testsplit{
    public static void main(String args[]){
        String s="1,2;3,4,5;6,7,8";
        double d[][];
        d=parseArray(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();
        }    }    public static double[][] parseArray(String s){
        String str1[];
        String str2[];
        str1=s.split(";");
        double d[][]=new double[str1.length][];
        for(int i=0;i<str1.length;i++){
            str2=str1[i].split(",");
            for(int j=0;j<str2.length;j++){
                d[i]=new double[str2.length];
                d[i][j]=Double.parseDouble(str2[j]);
            }
        } 
        return d;   
    }
}
帮忙看一下,怎么打印的错了?

解决方案 »

  1.   


    public class testsplit {
        public static void main(String args[]) {
            String s = "1,2;3,4,5;6,7,8";
            double d[][];
            d = parseArray(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();
            }    }    public static double[][] parseArray(String s) {
            String str1[];
            String str2[];
            str1 = s.split(";");
            double d[][] = new double[str1.length][];
            for (int i = 0; i < str1.length; i++) {
                str2 = str1[i].split(",");
                d[i] = new double[str2.length]; // 追加的代码
                for (int j = 0; j < str2.length; j++) {
    //                d[i] = new double[str2.length];  不应该在此地方new double
                    d[i][j] = Double.parseDouble(str2[j]);
                }
            }
            return d;
        }
    }
      

  2.   

    public static double[][] parseArray(String s) {
    String str1[];
    String str2[];
    str1 = s.split(";");
    double d[][] = new double[str1.length][];
    for (int i = 0; i < str1.length; i++) {
    str2 = str1[i].split(",");
    d[i] = new double[str2.length];
    for (int j = 0; j < str2.length; j++) {
    d[i][j] = Double.parseDouble(str2[j]);
    }
    }
    return d;
    }
      

  3.   

    String sub[];
    for(int i=0;i<str1.length;i++)
    {
    for(int n=0;n<str1[i].split(",").length;n++)
    {
    sub = str1[i].split(",");
    System.out.println(i+": "+sub[n]);
    }
    }
      

  4.   

    LZ大意了.public static double[][] parseArray(String s){
      String str1[];
      String str2[];
      str1=s.split(";");
      double d[][]=new double[str1.length][];
      for(int i=0;i<str1.length;i++){
      str2=str1[i].split(",");
     d[i]=new double[str2.length];//这句话应该放j循环外面,否则每一次都new一次。
      for(int j=0;j<str2.length;j++){
     
      d[i][j]=Double.parseDouble(str2[j]);
      }
      }  
      return d;   
      }