- java.lang.Object
-
- java.util.StringJoiner
-
public final class StringJoinerextends Object
StringJoiner
用于构造由分隔符分隔的字符序列,并且可选地以提供的前缀开头并以提供的后缀结束。在向
StringJoiner
添加内容之前,默认情况下,其sj.toString()
方法将返回prefix + suffix
。 但是,如果调用setEmptyValue
方法,则将返回提供的emptyValue
。 这可以用来,例如,创建使用组表示法来表示空集,即一个字符串时"{}"
,其中prefix
是"{"
,所述suffix
是"}"
,没有什么已被添加到StringJoiner
。- API Note:
-
字符串
"[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(", "));
- 从以下版本开始:
- 1.8
- 另请参见:
-
Collectors.joining(CharSequence)
,Collectors.joining(CharSequence, CharSequence, CharSequence)
-
-
构造方法摘要
构造方法 构造器 描述 StringJoiner(CharSequence delimiter)
构造一个StringJoiner
与其中不带字符,没有prefix
或suffix
,和所提供的副本delimiter
。StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
构造一个StringJoiner
使用的供给拷贝在不带字符prefix
,delimiter
和suffix
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 StringJoiner
add(CharSequence newElement)
将给定的副本CharSequence
值作为下一个元素StringJoiner
值。int
length()
返回此StringJoiner
的String
表示形式的StringJoiner
。StringJoiner
merge(StringJoiner other)
如果非空,则添加给定StringJoiner
的内容,不带前缀和后缀作为下一个元素。StringJoiner
setEmptyValue(CharSequence emptyValue)
设置在确定此StringJoiner
的字符串表示形式时要使用的字符序列,并且尚未添加任何元素,即它为空时。String
toString()
返回当前值,包括prefix
,到目前为止由delimiter
分隔的值和suffix
,除非在这种情况下未添加任何元素,否则返回prefix + suffix
或emptyValue
字符。
-
-
-
构造方法详细信息
-
StringJoiner
public StringJoiner(CharSequence delimiter)
构造一个StringJoiner
与其中不带字符,没有prefix
或suffix
,和所提供的副本delimiter
。 如果没有向StringJoiner
添加字符并且调用访问其值的方法,则不会在结果中返回prefix
或suffix
(或其属性),除非首先调用了setEmptyValue
。- 参数
-
delimiter
- 添加到StringJoiner
值的每个元素之间要使用的字符序列 - 异常
-
NullPointerException
- 如果delimiter
是null
-
StringJoiner
public StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
构造一个StringJoiner
使用的供给拷贝在不带字符prefix
,delimiter
和suffix
。 如果没有向StringJoiner
添加字符并且调用访问其字符串值的方法,则它将在结果中返回prefix + suffix
(或其属性),除非首先调用了setEmptyValue
。- 参数
-
delimiter
- 添加到StringJoiner
每个元素之间要使用的字符序列 -
prefix
- 开头使用的字符序列 -
suffix
- 最后使用的字符序列 - 异常
-
NullPointerException
-如果prefix
,delimiter
,或suffix
为null
-
-
方法详细信息
-
setEmptyValue
public StringJoiner setEmptyValue(CharSequence emptyValue)
设置在确定此StringJoiner
的字符串表示形式时要使用的字符序列,并且尚未添加任何元素,即它为空时。emptyValue
参数的副本用于此目的。 请注意,一旦调用了add方法,StringJoiner
就不再被视为空,即使添加的元素对应于空String
。- 参数
-
emptyValue
- 要返回的字符为空StringJoiner
的值 - 结果
- 这个
StringJoiner
本身就可以StringJoiner
这些电话 - 异常
-
NullPointerException
- 当emptyValue
参数为null
-
toString
public String toString()
返回当前值,包括prefix
,到目前为止由delimiter
分隔的值和suffix
,除非在这种情况下未添加任何元素,否则返回prefix + suffix
或emptyValue
字符。
-
add
public StringJoiner add(CharSequence newElement)
将给定的副本CharSequence
值作为下一个元素StringJoiner
值。 如果newElement
是null
,则添加"null"
。- 参数
-
newElement
- 要添加的元素 - 结果
- 参考这个
StringJoiner
-
merge
public StringJoiner merge(StringJoiner other)
如果非空,则添加给定StringJoiner
的内容,不带前缀和后缀作为下一个元素。 如果给定的StringJoiner
为空,则呼叫无效。一个
StringJoiner
是空的,如果add()
从未被调用,如果merge()
从未调用一个非空StringJoiner
说法。如果其他
StringJoiner
使用不同的分隔符,则其他StringJoiner
中的元素将与该分隔符连接,并将结果作为单个元素附加到此StringJoiner
。- 参数
-
other
-StringJoiner
其内容应合并到此内容中 - 结果
- 这
StringJoiner
- 异常
-
NullPointerException
- 如果其他StringJoiner
为空
-
length
public int length()
返回此StringJoiner
的String
表示形式的StringJoiner
。 请注意,如果未调用任何添加方法,则将返回String
表示(prefix + suffix
或emptyValue
)的长度。 该值应等于toString().length()
。- 结果
- 当前值的长度为
StringJoiner
-
-