将字符串值转换为double类型的2d数组

时间:2018-09-13 14:11:49

标签: java arrays multidimensional-array

我有一个字符串:

String stringProfile = "0,4.28 10,4.93 20,3.75";

我正在尝试将其转换为如下数组:

double [][] values = {{0, 4.28}, {10, 4.93}, {20, 3.75}};

我已经格式化了字符串以删除所有空格并用逗号替换:

String stringProfileFormatted = stringProfile.replaceAll(" ", ",");

现在,字符串stringProfileFormatted = "0,4.28,10,4.93,20,3.75";

然后我创建一个String数组:

String[] array = stringProfileFormatted.split("(?<!\\G\\d+),");

因此,数组中的每个元素都是每2个逗号值的字符串。

不确定如何将其转换为2d数组。这是正确的解决方法吗?

1 个答案:

答案 0 :(得分:1)

如果您的字符串遵循您描述的模式,那么您可以这样做:

String stringProfile = "0,4.28 10,4.93 20,3.75";
String[] split = stringProfile.split(" "); // split by space;

double[][] a = new double[split.length][]; // your result

for(int i = 0; i < split.length; i++) {
    String[] numbers = split[i].split(","); // split by ,
    double[] doubles = Arrays.stream(numbers).mapToDouble(Double::new).toArray(); //create 1-D array
    a[i] = doubles; // assign it do your result
}