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