20210117 java.util.StringJoiner
java.util.StringJoiner
基本信息
public final class StringJoiner
rt.jar
- 引入版本:
1.8
使用说明
- 非常实用的工具类,Spring 源码中见到过这个类被使用,作用是拼接带前后缀和分隔符的字符串
StringJoiner
用于构造由分隔符分隔的字符序列,并可选地以提供的前缀开头和以提供的后缀结尾- 内部使用
StringBuilder
,属性包括delimiter
: 分隔符prefix
:前缀,默认是空字符串suffix
: 后缀,默认是空字符串value
:StringBuilder
本体emptyValue
: 默认是prefix
+suffix
- 如果未调用过
add
方法,调用toString
方法返回通过setEmptyValue
设置的值
构造方法
构造方法 |
---|
StringJoiner(CharSequence delimiter) StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix) 设置 delimiter 、prefix 、suffix |
公共方法
实例方法
实例方法 |
---|
StringJoiner setEmptyValue(CharSequence emptyValue) 设置 emptyValue ,不能为 null |
StringJoiner add(CharSequence newElement) 添加元素,如果新元素为 null ,添加 "null" |
StringJoiner merge(StringJoiner other) 将入参 StringJoiner 内容添加到当前类内容中 |
int length() value == null 时,返回 emptyValue |
String toString() 返回当前值,当前值由前缀,到目前为止添加的值(由定界符分隔)和后缀组成。 value == null 时,则返回 emptyValue |
示例代码
@Test
public void test() {
StringJoiner sj1 = new StringJoiner(":", "[", "]");
sj1.add("a").add("b").add("c");
String desiredString = sj1.toString();
System.out.println(desiredString); // [a:b:c]
sj1.add("d");
System.out.println(sj1.toString()); // [a:b:c:d]
StringJoiner sj2 = new StringJoiner(",", "(", ")");
sj2.add("1").add("2").add("3");
System.out.println(sj2.toString()); // (1,2,3)
System.out.println(sj1.merge(sj2)); // [a:b:c:d:1,2,3]
System.out.println(sj2.merge(sj1)); // (1,2,3,a:b:c:d:1,2,3)
}