StringJoiner

本文介绍了Java中的StringJoiner类,用于高效地进行字符串拼接。通过构造函数,可以设置分隔符、前缀和后缀。StringJoiner提供了add和merge方法来添加或合并元素,并能通过setEmptyValue设定空值。此外,length方法可获取拼接后的字符串长度,避免了手动处理结尾分隔符的问题。
摘要由CSDN通过智能技术生成

一,前言

在项目里,经常会用到字符串拼接,例如,拼接多个水果名称,用竖线隔开:  apple|orange|banana

注意,在最后是没有这个分隔符竖线的,这里我们可能 就需要用到逻辑操作去除最后的竖线。

但是,最近发现一个类可以完美完成以上功能。它就是StringJoiner。

 

二,StringJoiner

2.1构造函数StringJoiner

public StringJoiner(CharSequence delimiter) {
        this(delimiter, "", "");
    }
    public StringJoiner(CharSequence delimiter,
                        CharSequence prefix,
                        CharSequence suffix) {
        Objects.requireNonNull(prefix, "The prefix must not be null");
        Objects.requireNonNull(delimiter, "The delimiter must not be null");
        Objects.requireNonNull(suffix, "The suffix must not be null");
        // make defensive copies of arguments
        this.prefix = prefix.toString();
        this.delimiter = delimiter.toString();
        this.suffix = suffix.toString();
        this.emptyValue = this.prefix + this.suffix;
    }

可以看到,一个参数的构造函数,本质也是去调用三个参数的构造函数,具体分析这三个参数代表着什么。

第一个参数,delimiter,表示各个元素之间的分隔符

第二个参数,prefix,表示StringJoiner对象的前缀字符

第三个参数,suffix,表示StringJoiner对象的后缀字符

测试代码:

public class MainTest {
    public static void main(String args[]) {

        StringJoiner stringJoiner = new StringJoiner("|","1","2");
        stringJoiner.add("a");
        stringJoiner.add("b");
        System.out.println(stringJoiner.toString());
    }

}

2.2setEmptyValue

这个方法的作用,就是设置为空时候的默认值。注意,如果你新增了字符之后,再设置它的值,也是不会发生变化的。

测试代码:

public class MainTest {
    public static void main(String args[]) {

        StringJoiner stringJoiner = new StringJoiner("|","1","2");
        stringJoiner.setEmptyValue("xxx");
        System.out.println(stringJoiner.toString());
        stringJoiner.add("a");
        stringJoiner.add("b");
        System.out.println(stringJoiner.toString());
        stringJoiner.setEmptyValue("=======");
        System.out.println(stringJoiner.toString());

    }

}

2.3  add方法

新增一个元素到StringJoiner。具体例子请参考2.1  2.2

2.4merge方法

合并一个StringJoiner。

测试代码:

public class MainTest {
    public static void main(String args[]) {

        StringJoiner stringJoiner1= new StringJoiner("|","1","2");
        stringJoiner1.add("a");
        stringJoiner1.add("b");
        System.out.println(stringJoiner1);
        StringJoiner stringJoiner2 = new StringJoiner(";");
        stringJoiner2.add("c");
        stringJoiner2.add("d");
        System.out.println(stringJoiner2);
        stringJoiner1.merge(stringJoiner2);
        System.out.println(stringJoiner1);

    }

}

2.5 length方法

返回StringJoiner长度。


public class MainTest {
    public static void main(String args[]) {

        StringJoiner stringJoiner1= new StringJoiner("|","1","2");
        stringJoiner1.add("a");
        stringJoiner1.add("b");
        System.out.println(stringJoiner1);
        StringJoiner stringJoiner2 = new StringJoiner(";");
        stringJoiner2.add("c");
        stringJoiner2.add("d");
        System.out.println(stringJoiner2);
        stringJoiner1.merge(stringJoiner2);
        System.out.println(stringJoiner1);
        System.out.println(stringJoiner1.length());

    }

}

 

 

三,总结

StringJoiner在字符串拼接需求的场景非常有用,留下一个笔记。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值