版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一,题目
编写一个方法,返回一个double型二维数组,数组中的元素通过解析字符串参数获得,如字符串参数:
“1,2;3,4,5;6,7,8,”对应的数组为:
arry[0][0]=1.0 arry[0][1]=2.0
arry[1][0]=3.0 arry[1][1]=4.0 arry[1][2]=5.0
arry[2][0]=6.0 arry[2][1]=7.0 arry[2][2]=8.0
二,源代码
package home516;
public class Func {
public static void main(String [] args) {
double arry[][];
String str="1,2;3,4,5;6,7,8";
String[] sFirst=str.split(";");
arry=new double[sFirst.length][];
for(int i=0;i<sFirst.length;i++) {
String [] sSecond=sFirst[i].split(",");
arry[i]=new double[sSecond.length];
for(int j=0;j<sSecond.length;j++) {
arry[i][j]=Double.parseDouble(sSecond[j]);
}
}
for(int i=0;i<arry.length;i++) {
for(int j=0;j<arry[i].length;j++) {
System.out.printf("arry["+i+"]["+j+"]="+arry[i][j]+" ");
}
System.out.println();
}
}
}
三,运行结果
四,总结
利用String类中的split函数进行分割,同时将结果存放在一个二维数组中。问题在于怎么利用两次split分割后放在数组的两个维度中,过程不再撰述。数组为引用型,需要申请内存。String类型转换为double利用的时包装类的静态方法parseDouble(),parseXxx可以将变量内容匹配的字符串转换为对应的基本数据类型。遍历时使用System类中的System.out.printf();区别就是:前者可以不换行的输出,而System.out.println()的每一个都要换行。