美文网首页
Java 中stream().map().collect(Col

Java 中stream().map().collect(Col

作者: 乘风破浪的姐姐 | 来源:发表于2021-11-02 17:54 被阅读0次

在JDK8中,可以采用函数式编程(使用 Collectors.joining 收集器)的方式对字符串进行更优雅的连接。
Collectors.joining 收集器 支持灵活的参数配置,可以指定字符串连接时的 分隔符,前缀 和 后缀 字符串。
代码参考如下

  List<String> nickNameList = new ArrayList<>();
        nickNameList.add("Alisa");
        nickNameList.add("Sundy");
        nickNameList.add("Amy");
        nickNameList.add("Nancy");
        //将nickNameList 转换成以、拼接的字符串
        System.out.println(nickNameList.stream().map(String::valueOf).collect(Collectors.joining("、")));
        // 将nickNameList 拼接成 [x,y,z] 形式的字符串
        System.out.println(nickNameList.stream().map(String::valueOf).collect(Collectors.joining(", ", "[", "]")));
        // 将nickNameList 拼接成 x | y | z 形式的字符串
        System.out.println(nickNameList.stream().map(String::valueOf).collect(Collectors.joining(" | ", "", "")));
        // 将nickNameList 拼接成 x -> y -> z 形式的字符串
        System.out.println(nickNameList.stream().map(String::valueOf).collect(Collectors.joining(" -> ", "", "")));

运行结果:

Alisa、Sundy、Amy、Nancy
[Alisa, Sundy, Amy, Nancy]
Alisa | Sundy | Amy | Nancy
Alisa -> Sundy -> Amy -> Nancy

使用StringBuilder 拼接(不推荐)
在JAVA8之前,通常使用循环的方式来拼接字符串,例如:

 String[] nickNames = {"Alisa", "Sundy", "Amy", "Nancy"};
        StringBuilder builder = new StringBuilder();
        builder.append("[");
        for (int i = 0; i < nickNames.length; i++) {
            if (builder.length() > 1) {
                builder.append(",");
            }
            builder.append(nickNames[i]);
        }
        builder.append("]");
        System.out.println(builder.toString());

运行结果:

[Alisa,Sundy,Amy,Nancy]

相关文章

网友评论

      本文标题:Java 中stream().map().collect(Col

      本文链接:https://www.haomeiwen.com/subject/zghfzltx.html