java.lang.Object
java.util.StringJoiner
StringJoiner 用于构造由分隔符分隔的字符序列,可选择以提供的前缀开头并以提供的后缀结尾。
在向 StringJoiner 添加内容之前,默认情况下,其 sj.toString() 方法将返回 prefix + suffix。但是,如果调用了 setEmptyValue 方法,则将返回提供的 emptyValue。例如,当使用集合符号创建字符串以表示空集时,即 "{}",其中 prefix 是 "{",suffix 是 "}",并且没有向 StringJoiner 添加任何内容时,可以使用此功能。
- API 注意:
-
字符串
"[George:Sally:Fred]"可以如下构造:StringJoiner sj = new StringJoiner(":", "[", "]"); sj.add("George").add("Sally").add("Fred"); String desiredString = sj.toString();可以使用
StringJoiner从Stream中使用Collectors.joining(CharSequence)创建格式化输出。例如:List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); - 自 JDK 版本:
- 1.8
- 参见:
-
Constructor Summary
ConstructorsConstructorDescriptionStringJoiner(CharSequence delimiter) 构造一个空的StringJoiner,没有字符,没有prefix或suffix,并使用提供的delimiter的副本。StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix) 构造一个空的StringJoiner,使用提供的prefix、delimiter和suffix的副本。 -
Method Summary
Modifier and TypeMethodDescriptionadd(CharSequence newElement) 将给定的CharSequence值的副本作为StringJoiner值的下一个元素添加。intlength()返回此StringJoiner的String表示的长度。merge(StringJoiner other) 如果非空,则将给定的StringJoiner的内容(无前缀和后缀)作为下一个元素添加。setEmptyValue(CharSequence emptyValue) 设置用于确定此StringJoiner的字符串表示形式的字符序列,且尚未添加任何元素时(即为空)。toString()返回当前值,包括prefix,到目前为止使用delimiter分隔的值,以及suffix,除非没有添加任何元素,在这种情况下,将返回prefix + suffix或emptyValue字符。
-
Constructor Details
-
StringJoiner
构造一个空的StringJoiner,没有字符,没有prefix或suffix,并使用提供的delimiter的副本。如果没有向StringJoiner添加字符,并调用访问其值的方法,则不会返回prefix或suffix(或其属性)的结果,除非首先调用了setEmptyValue。- 参数:
-
delimiter- 用于在添加到StringJoiner值时分隔每个元素的字符序列 - 抛出:
-
NullPointerException- 如果delimiter为null
-
StringJoiner
构造一个空的StringJoiner,使用提供的prefix、delimiter和suffix的副本。如果没有向StringJoiner添加字符,并调用访问其字符串值的方法,则将返回结果为prefix + suffix(或其属性)的结果,除非首先调用了setEmptyValue。- 参数:
-
delimiter- 用于在添加到StringJoiner中的每个元素之间使用的字符序列 -
prefix- 用于在开头使用的字符序列 -
suffix- 用于在结尾使用的字符序列 - 抛出:
-
NullPointerException- 如果prefix、delimiter或suffix为null
-
-
Method Details
-
setEmptyValue
设置用于确定此StringJoiner的字符串表示形式的字符序列,且尚未添加任何元素时(即为空)。为此目的制作emptyValue参数的副本。请注意,一旦调用了 add 方法,即使添加的元素对应于空的String,StringJoiner也不再被视为空。- 参数:
-
emptyValue- 作为空的StringJoiner值返回的字符 - 返回:
-
返回此
StringJoiner本身,以便可以链接调用 - 抛出:
-
NullPointerException- 当emptyValue参数为null时
-
toString
返回当前值,包括prefix,到目前为止使用delimiter分隔的值,以及suffix,除非没有添加任何元素,在这种情况下,将返回prefix + suffix或emptyValue字符。 -
add
将给定的CharSequence值的副本作为StringJoiner值的下一个元素添加。如果newElement为null,则添加"null"。- 参数:
-
newElement- 要添加的元素 - 返回:
-
指向此
StringJoiner的引用
-
merge
如果非空,则将给定的StringJoiner的内容(无前缀和后缀)作为下一个元素添加。如果给定的StringJoiner为空,则调用不起作用。如果其他
StringJoiner使用不同的分隔符,则来自其他StringJoiner的元素将使用该分隔符连接,并将结果作为单个元素附加到此StringJoiner。- 参数:
-
other- 应合并其内容到此StringJoiner的StringJoiner - 返回:
-
此
StringJoiner - 抛出:
-
NullPointerException- 如果其他StringJoiner为 null
-
length
public int length()返回此StringJoiner的String表示的长度。请注意,如果没有调用 add 方法,则将返回String表示的长度(prefix + suffix或emptyValue)。该值应等同于toString().length()。- 返回:
-
StringJoiner当前值的长度
-