use*_*139 1 java string lambda java-stream
我正在研究 Java8 中 Stream 和 Lambda 的用法。您将如何将 Stream 和 Lambda 应用于以下内容:使用 Stream 和 Lambda 打印出以下字符串中的奇数:“[3, 6, 8, 96, 7, 23]”。
我发现使用 for 循环和 parseInt 非常简单,但是如何实现流和 lambda。
您可以像这样将子字符串与 split 一起使用:
String str = "[3, 6, 8, 96, 7, 23]";
Arrays.stream(str.substring(1, str.length() - 1).split(", "))
.filter(s -> Integer.valueOf(s) % 2 != 0)
.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
或者如果你想得到一个数组,那么你可以toArray像这样使用:
.toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)
或者,如果你想获得一个整数数组,你可以使用一个映射然后一个过滤器,如下所示:
Integer[] array = Arrays.stream(str.substring(1, str.length() - 1).split(", "))
.map(Integer::valueOf)
.filter(i -> i % 2 != 0)
.toArray(Integer[]::new);
Run Code Online (Sandbox Code Playgroud)
输出
3
7
23
Run Code Online (Sandbox Code Playgroud)