编写一个方法,返回一个double型二维数组,数组中的元素能过解析字符串参数获得。如字符参数:
“1,2;3,4,5;6,7,8"写出对应的数组
我编了,可是调不出来帮帮我!!!public class Arr{
   public static void main(String[] args){
        String s = "1,2;3,4,5;6,7,8";
        double[][] ss = d(s);
        for(int i=0; i<ss.length; i++) {
   for(int j=0; j<ss[i].length; j++) {
    System.out.print(ss[i][j] + " ");
  }
       System.out.println();
       } 
   }
  public static double[][] d(String s){
        double[][] ss = new double[3][]; 
         String[] st ;
         st = s.split(";");
         for(int i = 0; i<3 ; i++){
          String[] stt ;
            stt = st[i].split(",");
             for(int j=0; j< stt.length ; j++){
               ss[i][j] = Double.parseDouble(stt[j]);
            }
        }
        return ss;
      }
  
}

解决方案 »

  1.   

    st = s.split(";");
    上面这句是啥啊??当年我学java没用过这个!悲剧!
      

  2.   

    运行后出现这个!
    Exception in thread "main" java.lang.NullPointerException
    at as.d(as.java:27)
    at as.main(as.java:11)
    不解!!
                哥是菜鸟啊!
      

  3.   


    public class Arr {
    public static void main(String[] args) {
    String s = "1,2;3,4,5;6,7,8";
    double[][] ss = d(s);
    for (int i = 0; i < ss.length; i++) {
    for (int j = 0; j < ss[i].length; j++) {
    System.out.print(ss[i][j] + " ");
    }
    System.out.println();
    }
    } public static double[][] d(String s) {
    // double[][] ss = new double[3][];
    // String[] st;
    // st = s.split(";");
    // for (int i = 0; i < 3; i++) {
    // String[] stt;
    // stt = st[i].split(",");
    // for (int j = 0; j < stt.length; j++) {
    // ss[i][j] = Double.parseDouble(stt[j]);
    // }
    // }
    // return ss;
    //你的数组的第二维没初始化

    String[] st = s.split(";");
    double[][] ss = new double[st.length][];
    for(int i=0; i<ss.length; i++) {
    String[] stt = st[i].split(",");
    ss[i] = new double[stt.length];
    for(int j=0; j<ss[i].length; j++) {
    ss[i][j] = Double.parseDouble(stt[j]);
    }
    }
    return ss;
    }}
      

  4.   

    如果单单从功能需求来说,一下这个程序可以解决。
    楼主注意结贴啊!!!
    package com.csdn;public class DoubleSpilit{
      public static void main(String[] args){
      String s = "1,2;3,4,5;6,7,8";
      double[] ss=DoubleSpilits(s);
      for(int i=0;i<ss.length;i++)
      {
      System.out.println("ss"+i+ "is "+ss[i]);
      }
      
      }
      
      /**
       * 分割一个具有,和;分隔符的字符串
       * @return 分隔后的数字
       * **/
      public static double[] DoubleSpilits(String s){
      String[] ss ;      //保存分隔后的数组 
      String st ;       
      st=s.replaceAll(";", ",");  //将string s所有的;都用,代替
      ss = st.split(",");         //分割字符串s
      //将string[] 转换为double[]
      double[] ds=new double[ss.length];
          for(int i=0;i<ss.length;i++)
          {
           ds[i]=Double.parseDouble(ss[i]);
          }
      return ds;
      }
       
    }
      

  5.   

    搞笑了  String的能直接转化成double的