如何在一行中将String Array转换为Double Array

day*_*mer 9 java

我有一个字符串数组:

String[] guaranteedOutput = Arrays.copyOf(values, values.length,
String[].class);
Run Code Online (Sandbox Code Playgroud)

所有String值都是数字.数据应转换为Double[].

问题
Java中是否有一个单行解决方案来实现这一点,或者我们需要循环并将每个值转换为Double?

Mic*_*hev 27

Java 8 Stream API允许执行此操作:

double[] doubleValues = Arrays.stream(guaranteedOutput)
                        .mapToDouble(Double::parseDouble)
                        .toArray();
Run Code Online (Sandbox Code Playgroud)

双冒号用作方法参考.在这里阅读更多.

在使用代码之前不要忘记 import java.util.Arrays;

UPD:如果要将数组转换为Double [],而不是double [],则可以使用以下代码:

Double[] doubleValues = Arrays.stream(guaranteedOutput)
                        .map(Double::valueOf)
                        .toArray(Double[]::new);
Run Code Online (Sandbox Code Playgroud)


JB *_*zet 9

创建一个使用循环实现它的方法,然后调用您的方法,您将拥有一个单行解决方案.

Java API中没有用于执行此操作的buit-in方法.


ala*_*inm 6

在一行:p

Double[] d=new ArrayList<Double>() {{for (String tempLongString : tempLongStrings) add(new Double(tempLongString));}}.toArray(new Double[tempLongStrings.length]);
Run Code Online (Sandbox Code Playgroud)