Java StringJoiner类

Java StringJoiner类

StringJoiner是java.util包中的一个类,用于构造一个由分隔符分隔的字符(字符串)序列,并且可以选择以提供的前缀开始,以给定的后缀结束。尽管这也可以在StringBuilder类的帮助下完成,在每个字符串后添加分隔符,但StringJoiner提供了一种简单的方法,无需编写太多的代码。

StringJoiner类的构造函数

1.StringJoiner(CharSequence delimiter): 它构造了一个没有字符、没有前缀或后缀的StringJoiner,并且是所提供的分隔符的副本。

语法

public StringJoiner(CharSequence delimiter)

参数: 在每个元素之间使用的字符序列添加到StringJoiner值中。

抛出的异常: 如果定界符为空,则出现NullPointerException。

2.StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix): 它使用提供的前缀、定界符和后缀的副本构造一个没有字符的StringJoiner。如果没有字符被添加到StringJoiner中,并且访问字符串值的方法被调用,它将在结果中返回前缀+后缀(或其属性),除非 setEmptyValue 首先被调用。

语法

public StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)

参数

  • 添加到StringJoiner值的每个元素之间使用的字符序列
  • 开始时使用的字符序列
  • 在结尾处使用的字符序列

抛出的异常: 如果前缀、分隔符或后缀为空,则会出现NullPointerException。

StringJoiner类的方法

方法名称 执行的动作
add() 添加给定CharSequence值的副本作为StringJoiner值的下一个元素。如果newElement是空的,那么会添加 “null”。
length() 返回这个StringJoiner的字符串表示法的长度。
merge() 如果给定的StringJoiner的内容是非空的,则将其添加为下一个元素,不含前缀和后缀。如果给定的StringJoiner是空的,该调用没有效果。假设另一个StringJoiner使用的是不同的分隔符。在这种情况下,来自其他StringJoiner的元素用该定界符连接,结果作为一个元素追加到这个StringJoiner中。
toString() 返回这个StringJoiner的字符串对象。
SetEmptyValue() 设置在确定这个StringJoiner的字符串表示法时使用的字符串,并且还没有添加任何元素;也就是当它是空的时候。

例子

// Java program to Demonstrate Methods
// of StringJoiner class
 
// Importing required classes
import java.util.ArrayList;
import java.util.StringJoiner;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an empty ArrayList of string type
        ArrayList<String> al = new ArrayList<>();
 
        // Adding elements to above List
        al.add("Ram");
        al.add("Shyam");
        al.add("Alice");
        al.add("Bob");
 
        // Creating object of class inside main()
        StringJoiner sj1 = new StringJoiner(",");
 
        // Using setEmptyValue() method
        sj1.setEmptyValue("sj1 is empty");
        System.out.println(sj1);
 
        // Using add() method
        sj1.add(al.get(0)).add(al.get(1));
        System.out.println(sj1);
 
        // Using length() method
        System.out.println("Length of sj1 : "
                           + sj1.length());
 
        StringJoiner sj2 = new StringJoiner(":");
        sj2.add(al.get(2)).add(al.get(3));
 
        // Using merge() method
        sj1.merge(sj2);
 
        // Using toString() method
        System.out.println(sj1.toString());
 
        System.out.println("Length of new sj1 : "
                           + sj1.length());
    }
}

输出

sj1 is empty
Ram,Shyam
Length of sj1 : 9
Ram,Shyam,Alice:Bob
Length of new sj1 : 19

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程