将 for 循环转换为字符串作为 lambda 表达式
2022-09-01 12:25:44
我有以下for循环,它循环访问字符串列表并将每个单词的第一个字符存储在.我想知道如何将其转换为lambda表达式StringBuilder
StringBuilder chars = new StringBuilder();
for (String l : list) {
chars.append(l.charAt(0));
}
我有以下for循环,它循环访问字符串列表并将每个单词的第一个字符存储在.我想知道如何将其转换为lambda表达式StringBuilder
StringBuilder chars = new StringBuilder();
for (String l : list) {
chars.append(l.charAt(0));
}
假设你在之后调用,我认为你只是在寻找Collectors.joining()
之后,将每个字符串映射到一个字符的子字符串:toString()
StringBuilder
String result = list
.stream()
.map(s -> s.substring(0, 1))
.collect(Collectors.joining());
示例代码:
import java.util.*;
import java.util.stream.*;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("foo");
list.add("bar");
list.add("baz");
String result = list
.stream()
.map(s -> s.substring(0, 1))
.collect(Collectors.joining());
System.out.println(result); // fbb
}
}
请注意使用 代替 ,因此我们仍然有一个字符串流可以使用。substring
charAt
有很多方法可以做到这一点 - 最简单的选择:坚持添加到a并执行以下操作:StringBuilder
StringBuilder chars = new StringBuilder();
list.forEach(l -> chars.append(l.charAt(0)));