我有以下for循环,该循环遍历字符串列表并将每个单词的第一个字符存储在中StringBuilder
。我想知道如何将其转换为lambda表达式
StringBuilder chars = new StringBuilder();
for (String l : list) {
chars.append(l.charAt(0));
}
假设你拨打toString()
的StringBuilder
事后,我觉得你只是在寻找Collectors.joining()
,每个字符串单字符字符串映射后:
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
,因此我们仍然可以使用字符串流。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句