Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java8中,将逗号分隔的双值字符串拆分为双数组_Java_Arrays_String_Split - Fatal编程技术网

在Java8中,将逗号分隔的双值字符串拆分为双数组

在Java8中,将逗号分隔的双值字符串拆分为双数组,java,arrays,string,split,Java,Arrays,String,Split,我有一个包含双值的字符串,例如: String str = "0.1,0.4,0.9,0.1"; 我想从这个字符串中得到一个双数组,如下所示: double[] arr = {0.1, 0.4, 0.9, 0.1}; 对我来说,最明显的方法是: String[] tokens = str.split(","); double[] arr = new double[tokens.length]; int i=0 for (String st : tokens) { arr[i++] =

我有一个包含双值的字符串,例如:

String str = "0.1,0.4,0.9,0.1";
我想从这个字符串中得到一个双数组,如下所示:

double[] arr = {0.1, 0.4, 0.9, 0.1};
对我来说,最明显的方法是:

String[] tokens = str.split(",");
double[] arr = new double[tokens.length];
int i=0
for (String st : tokens) {
    arr[i++] = Double.valueOf(st);
}

除了上面在Java 8中提到的方法之外,还有其他更快/更好的方法吗?

您可以使用
Stream
s:

double[] arr = Stream.of(str.split(","))
                     .mapToDouble (Double::parseDouble)
                     .toArray();

“更好”?取决于您如何定义“更好”;“更快”?可能不是。嗯,可能不一定更快..本质上我所寻找的是在Java8中使用流实现这一点的更有效的方法..正如Eran在下面的回答中提到的,这正是我所寻找的