StringJoiner是JDK1.8新添加的新特性,字符串拼接神器,比StringBuilder更加方便好用。
类结构图
prefix:拼接后的字符串前缀
delimiter:拼接时的字符串分隔符
suffix:拼接后的字符串后缀
value:拼接后的值
emptyValue:空值的情况,value为null时返回
setEmptyValue():设置空值
toString():转换成String
add():添加字符串
merge():从另一个StringJoiner合并
length():长度(包括前后缀)
构造方法
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;
}
分隔符案例
package com;
import java.util.StringJoiner;
/**
* JDK1.8特性
*/
public class StringJoinerTest {
public static void main(String[] args) {
//分隔离
StringJoiner str = new StringJoiner(",");
str.add("hello");
str.add("world");
System.out.println(str);
}
}
前后缀案例
package com;
import java.util.StringJoiner;
/**
* JDK1.8特性
*/
public class StringJoinerTest {
public static void main(String[] args) {
//前后缀案例
StringJoiner str = new StringJoiner(",","【","】");
str.add("hello");
str.add("world");
System.out.println(str);
}
}
空值处理
package com;
import java.util.StringJoiner;
/**
* JDK1.8特性
*/
public class StringJoinerTest {
public static void main(String[] args) {
//空值
StringJoiner str = new StringJoiner(",");
System.out.println(str.toString());
str = new StringJoiner(",","[","]");
System.out.println(str.toString());
str = new StringJoiner(",","[","]");
str.setEmptyValue("null");
System.out.println(str.toString());
}
}