Irv*_*ato 13 java arrays java-8 java-stream
我目前正在学习如何使用Java,我的朋友告诉我,使用Java 8时可以简化这段代码.他指出parseIntArray可以简化.你会如何在Java 8中做到这一点?
public class Solution {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] tokens = input.nextLine().split(" ");
int[] ints = parseIntArray(tokens);
}
static int[] parseIntArray(String[] arr) {
int[] ints = new int[arr.length];
for (int i = 0; i < ints.length; i++) {
ints[i] = Integer.parseInt(arr[i]);
}
return ints;
}
}
Run Code Online (Sandbox Code Playgroud)
Bor*_*der 34
例如:
static int[] parseIntArray(String[] arr) {
return Stream.of(arr).mapToInt(Integer::parseInt).toArray();
}
Run Code Online (Sandbox Code Playgroud)
因此,采取Stream的String[].使用mapToInt调用Integer.parseInt每个元素,并转换为一个int.然后只需调用toArray结果IntStream返回数组.
Hol*_*ger 19
您可以跳过创建令牌String[]数组:
Pattern.compile(" ")
.splitAsStream(input.nextLine()).mapToInt(Integer::parseInt).toArray();
Run Code Online (Sandbox Code Playgroud)
当然,结果Pattern.compile(" ")可能会被记住并重复使用.