Java 中stream().map().collect(Collectors.joining())字符串连接器

在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]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容