public final class StringJoiner extends Object
StringJoiner
用于构造由分隔符分隔的字符序列,并且可选地从提供的前缀开始并以提供的后缀结尾。
在此之前添加一些东西到StringJoiner
,其sj.toString()
方法,默认情况下,返回prefix + suffix
。 但是,如果调用了setEmptyValue
方法,则将返回提供的emptyValue
。 这可用于,例如,使用一组表示法来表示空集,即创建字符串时"{}"
,其中prefix
是"{"
时, suffix
是"}"
和什么已被添加到StringJoiner
。
字符串"[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(", "));
Collectors.joining(CharSequence)
,
Collectors.joining(CharSequence, CharSequence, CharSequence)
Constructor and Description |
---|
StringJoiner(CharSequence delimiter)
构造一个
StringJoiner 与其中不带字符,没有
prefix 或
suffix ,以及所提供的副本
delimiter 。
|
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
构造一个
StringJoiner 使用的供给拷贝在不带字符
prefix ,
delimiter 和
suffix 。
|
Modifier and Type | Method and Description |
---|---|
StringJoiner |
add(CharSequence newElement)
将给定的副本
CharSequence 值作为下一个元素
StringJoiner 值。
|
int |
length()
返回此
StringJoiner 的
String 表示的长度。
|
StringJoiner |
merge(StringJoiner other)
添加给定的
StringJoiner 的内容,没有前缀和后缀作为下一个元素,如果它是非空的。
|
StringJoiner |
setEmptyValue(CharSequence emptyValue)
设置序列的字符时要使用确定的字符串表示的这个
StringJoiner ,而没有单元已被添加然而,就是当它是空的。
|
String |
toString()
返回当前值,由的
prefix ,值添加由迄今分离
delimiter 和
suffix ,除非没有元素已经在这种情况下,被添加
prefix + suffix 或
emptyValue 被返回的字符
|
public StringJoiner(CharSequence delimiter)
StringJoiner
与其中不带字符,没有prefix
或suffix
,以及所提供的副本delimiter
。
如果没有字符被添加到StringJoiner
种方法访问它被调用的值,它不会返回一个prefix
或suffix
在结果(或其特性),除非setEmptyValue
已首先被调用。
delimiter
- 要添加到每个元素之间的字符序列
StringJoiner
值
NullPointerException
- 如果
delimiter
是
null
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
public StringJoiner setEmptyValue(CharSequence emptyValue)
StringJoiner
和没有元件已经被添加,即,当它是空的。
为此目的提供了emptyValue
参数的副本。
请注意,一旦调用了add方法, StringJoiner
不再被StringJoiner
是空的,即使添加的元素对应于空的String
。
emptyValue
- 返回的字符为空值
StringJoiner
StringJoiner
本身就可以挂断电话
NullPointerException
- 当
emptyValue
参数是
null
public String toString()
prefix
,值添加由迄今分离
delimiter
和
suffix
,除非没有元素已经在这种情况下,被添加
prefix + suffix
或
emptyValue
被返回的字符
public StringJoiner add(CharSequence newElement)
CharSequence
值作为下一个元素StringJoiner
值。
如果newElement
是null
,则添加"null"
。
newElement
- 要添加的元素
StringJoiner
public StringJoiner merge(StringJoiner other)
StringJoiner
的内容,没有前缀和后缀作为下一个元素,如果它是非空的。
如果给定的StringJoiner
为空,则该呼叫不起作用。
如果add()
从未被调用,则StringJoiner
为空,如果merge()
从未使用非空StringJoiner
参数调用。
如果另一个StringJoiner
正在使用不同的分隔符,则来自另一个StringJoiner
元素将与该分隔符连接,并将结果附加到该StringJoiner
作为单个元素。
other
-
StringJoiner
的内容应该合并到这个
StringJoiner
NullPointerException
- 如果其他
StringJoiner
为空
public int length()
StringJoiner
的String
表示的长度。
请注意,如果没有调用add方法,那么将返回String
表示( prefix + suffix
或emptyValue
)的长度。
该值应相当于toString().length()
。
StringJoiner