编写一个方法,返回一个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
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
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();
}
}
}
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();
}
}
}