将 String[] 转换为 long[]

如何将 a 转换String[]long[]

我有一个String[] inputArray包含Stringat 的inputArray[31]。我想在特定的 上拆分该字符串SPLIT_CHAR,结果String[]如下:

String[] numbersText = inputArray[31].split(SPLIT_CHAR);

现在,每个元素都代表一个我想解析为 的数字long,因此可以有效地接收long[]. 我怎样才能做到这一点?

回答

解释

您必须在拆分后主动迭代数组并使用Long.parseLong.

请注意,如果任何元素实际上不是数字,它将抛出一个NumberFormatException.


环形

这是一个带有简单普通循环的传统版本:

String[] numbersText = inputArray[31].split(SPLIT_CHAR);
long[] numbers = new long[numbersText.length];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = Long.parseLong(numbersText[i]);
}

流API

这是使用流的现代解决方案:

long[] numbers = Pattern.compile(SPLIT_CHAR)
.splitAsStream(inputArray[31])
.mapToLong(Long::parseLong)
.toArray();

只是String[]为了long[]

为了问答,这里是一个稍微采用的版本,没有分割和其他模糊,作为完整的例子:

String[] numbersText = { "0", "1230", "-6", "5" };
long[] numbers = Stream.of(numbersText)
.mapToLong(Long::parseLong)
.toArray();

以上是将 String[] 转换为 long[]的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>