编写一个方法,返回一个double型的二维数组,数组中的元素通过解析字符串参数获得。例如,字符串参数:“1,2;3,4,5;6,7,8”,对应的数组为:
d[0,0] = 1.0  d[0,1] = 2.0  
d[1,0] = 3.0  d[1,1] = 4.0  d[1,2] = 5.0  
d[2,0] = 6.0  d[2,1] = 7.0  d[2,2] = 8.0

解决方案 »

  1.   

    思路是,先将原始字符串从“;”处截断,再从“,”处截断,然后存入二维数组中。public class Hello {
    public static void main(String args[])
    {
    String str = "1,2;3,4,5;6,7,8";
    double[][] dMat;
    String[] firstD = str.split(";");
    int firstLen = firstD.length;
    dMat = new double[firstLen][];
    for(int i = 0; i < firstLen; i++) {
    String[] secondD = firstD[i].split(",");
    int secondLen = secondD.length;
    dMat[i] = new double[secondLen];
    for(int j = 0; j < secondLen; j++)
    dMat[i][j] = Double.parseDouble(secondD[j]);
    }
                 for(int i = 0; i < dMat.length; i++) {
                 for(int j = 0; j < dMat[i].length; j++)
                 System.out.print(dMat[i][j] + "\t");
                 System.out.println();
                 }
    }
    }
      

  2.   

    自己回
    public class ParseString{
    public double[][] getNum(String str) {
    String[] sFirst = str.split(";");
    double[][] d = new double[sFirst.length][];
    for (int i = 0; i < sFirst.length; i++) {
    String[] sSecond = sFirst[i].split(",");
    }
    for (int i = 0; i < sFirst.length; i++) {
    String[] sSecond = sFirst[i].split(",");
    d[i] = new double[sSecond.length];
    for (int j = 0; j < sSecond.length; j++) {
    d[i][j] = Double.parseDouble(sSecond[j]);
    }
    }
    return d;
    } public static void main(String[] args) {
    ParseString da = new ParseString();
    String str = "1,2;3,4,5;6,7,8";
    double[][] d = da.getNum(str);
    for (int i = 0; i < d.length; i++) {
    for (int j = 0; j < d[i].length; j++) {
    System.out.print("d[" + i + "," + j + "] = " + d[i][j] + "  ");
    }
    System.out.println();
    }
    }