我正在学习lambdas,我想知道以下代码:
ArrayList<String> lines = new ArrayList<>();
lines.add("#ignored");
lines.add(" #ignored2");
lines.add("Not Ignored");
lines.add("also not ignored");
lines.add(" also Not Ignored but lower CASE");
lines.stream()
.filter(line -> !line.trim().startsWith("#"))
.map(line -> line.trim().toLowerCase())
.forEach(System.out::println);
输出:
not ignored
also not ignored
also not ignored but lower case
对于过滤器和地图行,我正在调用trim()去除任何前导或拖尾空格。
这里是否可以修剪一次,存储结果,然后在地图中使用该结果?
答案 0 :(得分:7)
您可以在开头使用map
方法修剪线条:
lines.stream()
.map(String::trim) // Trim the spaces
.filter(line -> !line.startsWith("#"))
.map(String::toLowerCase)
.forEach(System.out::println);
答案 1 :(得分:2)
你可以尝试下面的
data2