📜  Java8中的java.util.StringJoiner

📅  最后修改于: 2020-03-25 05:26:15             🧑  作者: Mango

StringJoiner是java.util包中的类,用于构造由定界符分隔的字符(字符串)序列,并可选地以提供的前缀开头和提供的后缀结尾。尽管这也可以通过StringBuilder类的帮助在每个字符串后附加定界符来完成,但是StringJoiner提供了一种简便的方法来完成此任务,而无需编写太多代码。
构造函数:

    1. StringJoiner(CharSequence delimiter):构造一个不带任何字符,没有前缀或后缀的StringJoiner,以及提供的定界符的副本。
      语法 :
      public StringJoiner(CharSequence delimiter)
      参数 :
      delimiter - 字符序列
      报错:
      NullPointerException - 如果delimiter为null
    2. StringJoiner(CharSequence delimiter,CharSequence prefix,CharSequence suffix):使用提供的前缀,定界符和后缀的副本构造一个不包含任何字符的StringJoiner。如果没有字符添加到StringJoiner中,并且调用了访问其字符串值的方法,则它将返回前缀+后缀(或其属性),除非首先调用了setEmptyValue。
      语法 :
      public StringJoiner(CharSequence delimiter,
             CharSequence prefix, CharSequence suffix)
      参数 :
      delimiter - 分隔符
      prefix - 前缀
      suffix - 后缀
      报错:
      NullPointerException - 如果 prefix, delimiter, 或suffix为null

方法: StringJoiner类中有5个方法。

    1. String toString():此方法返回此StringJoiner的String对象。
      语法 :
      public String toString()
      参数 :
      NA
      返回 :
      StringJoiner的string对象
      重写 :
      Object类的toString
    2. StringJoiner add(CharSequence newElement):此方法将给定CharSequence值的副本添加为StringJoiner值的下一个元素。如果newElement为null,则添加“ null”。
      语法 :
      public StringJoiner add(CharSequence newElement)
      参数 :
      newElement - 待添加元素
      返回 :
      新StringJoiner的引用
    3. StringJoiner merge(StringJoiner other):此方法添加给定StringJoiner的内容(不带前缀和后缀)作为下一个元素。如果给定的StringJoiner为空,则该调用无效。如果另一个StringJoiner使用其他定界符,则来自另一个StringJoiner的元素将与该定界符连接,并且结果将作为单个元素附加到此StringJoiner。
      语法 :
      public StringJoiner merge(StringJoiner other)
      参数 :
      other - StringJoiner,待添加元素
      返回 :
      StringJoiner
      报错 :
      NullPointerException - 如果other为null
    4. int length():此方法返回此StringJoiner的String表示形式的长度。
      语法 :
      public int length()
      参数 :
      NA
      返回 :
      此StringJoiner的String表示形式的长度
    5. StringJoiner setEmptyValue(CharSequence emptyValue):此方法设置确定此StringJoiner的字符串当它为空时并且尚未添加任何元素是,表示时要使用的字符串。
      语法 :
      public StringJoiner setEmptyValue(CharSequence emptyValue)
      参数 :
      emptyValue - 需要设定的值
      返回 :
      StringJoiner
      报错:
      NullPointerException - emptyValue为null

以下是演示所有方法的Java程序。

// Java展示如何使用StringJoiner类
import java.util.ArrayList;
import java.util.StringJoiner;
public class Test2
{
    public static void main(String[] args)
    {
       ArrayList al = new ArrayList<>();
       al.add("Ram");
       al.add("Shyam");
       al.add("Alice");
       al.add("Bob");
       StringJoiner sj1 = new StringJoiner(",");
       // setEmptyValue() 方法
       sj1.setEmptyValue("sj1是空的");
       System.out.println(sj1);
       // add() 方法
       sj1.add(al.get(0)).add(al.get(1));
       System.out.println(sj1);
       // length() 方法
       System.out.println("sj1长度 : " + sj1.length());
       StringJoiner sj2 = new StringJoiner(":");
       sj2.add(al.get(2)).add(al.get(3));
       //merge() 方法
       sj1.merge(sj2);
       // toString() 方法
       System.out.println(sj1.toString());
       System.out.println("新sj1长度 : " + sj1.length());
    }
}

输出:

sj1是空的
Ram,Shyam
sj1长度 : 9
Ram,Shyam,Alice:Bob
新sj1长度 : 19