我在考虑仅使用lambda表达式将此String
:1 2 3 4 5 6
转换为int[]
。
int[] x = Arrays.asList(scan.nextLine().split(" ")).stream.forEach(it -> Integer.parseInt(it));
但这在语法上无效。
答案 0 :(得分:6)
对于@Jason的回答,删除转换为列表并返回int[]
而不是Integer[]
只是一些小改进:
int[] result = Pattern.compile(" ").splitAsStream("1 2 3 4 5")
.mapToInt(Integer::parseInt)
.toArray();
答案 1 :(得分:1)
如果您不介意结果为Integer[]
:
String s = "1 2 3 4 5";
int[] x = Arrays.stream(s.split(" "))
.mapToInt(Integer::parseInt)
.toArray();