java – 将for循环转换为一个lambda表达式的concat String

前端之家收集整理的这篇文章主要介绍了java – 将for循环转换为一个lambda表达式的concat String前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下for循环遍历一个字符串列表,并将每个单词的第一个字符存储在StringBuilder中.我想知道如何将其转换为lambda表达式
StringBuilder chars = new StringBuilder();
for (String l : list) {
    chars.append(l.charAt(0));
}

解决方法

假设您在StringBuilder之后调用toString(),我认为您只是在将每个字符串映射到单字符子字符串之后寻找 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
    }
}

注意使用子字符串而不是charAt,所以我们仍然有一串字符串来处理.

原文链接:https://www.f2er.com/java/123057.html

猜你在找的Java相关文章