Java核心基础 String join()和StringJoiner

本文介绍了Java8中String的join()方法和StringJoiner类的使用,包括如何通过指定分隔符进行字符串的拼接,如何设置前缀和后缀,以及如何合并两个StringJoiner对象。示例代码展示了它们在实际开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

String join()

在Java8中String类有一个新的字符串分割拼接方法join(),String join()方法将多个元素通过给定的分隔符进行分割并返回一个新的字符串。该功能在日常开发中经常使用。该方法以特定的分隔符进行分割,去掉了最后一位冗余的分隔符。

该方法有俩个重载方法:

【1】两个参数,第二个参数是Iterable接口的子类,可以处理List/Set等集合类型
在这里插入图片描述
【2】下面这个方法,第二个参数是一个可变长度的字符
在这里插入图片描述
【测试】

    @Test
    public void test1() {
        String res1 = String.join(",", "A", "B", "C");
        System.out.println(res1);


        List<String> strings = new LinkedList<>();
        strings.add("Java");
        strings.add("is");
        strings.add("cool");
        String res2 = String.join("、", strings);
        System.out.println(res2);


        Set<String> set = new LinkedHashSet<>();
        set.add("Java");
        set.add("is");
        set.add("very");
        set.add("cool");
        String res3 = String.join("、", set);
        System.out.println(res3);
    }

在这里插入图片描述
当我们进入到String.join源码中可以看到,其内部就是使用StringJoiner来实现的。
在这里插入图片描述

StringJoiner实践

StringJoiner用于构造由分隔符分隔的字符序列,并且可选地从提供的前缀开始并以提供的后缀结尾。

示例一:分割

使用StringJoiner分割合并字符串

        // 使用StringJoiner分割合并字符串
        StringJoiner mystring = new StringJoiner("-");
        mystring.add("Logan");
        mystring.add("Magneto");
        mystring.add("Rogue");
        mystring.add("Storm");
        System.out.println(mystring);

在这里插入图片描述

示例二:前缀和后缀

【1】给定分隔符切分数据
【2】在合并后的字符串上添加前缀和后缀字符串

        // 使用StringJoiner分割合并字符串
        StringJoiner mystring = new StringJoiner("-");
        mystring.add("Logan");
        mystring.add("Magneto");
        mystring.add("Rogue");
        mystring.add("Storm");
        System.out.println(mystring);

在这里插入图片描述

实例三:合并StringJoiner

【1】我们可以使用StringJoiner.merge方法去合并两个StringJoiner对象。
【2】需要注意,合并后的新字符串使用的前后缀是第一个StringJoiner 的,此外两个StringJoiner 对象的之间的分隔符使用的也是第一个StringJoiner 对象的。

        StringJoiner str1 = new StringJoiner(",", "(", ")");
        str1.add("A");
        str1.add("B");
        str1.add("C");
        str1.add("D");


        StringJoiner str2 = new StringJoiner("-", "pre", "suff");

        str2.add("中国");
        str2.add("安徽");
        str2.add("合肥");
        str2.add("高新区");


        StringJoiner mergedString = str1.merge(str2);
        System.out.println(mergedString);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZWZhangYu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值