- java.lang.Object
-
- java.util.StringJoiner
-
public final class StringJoiner extends 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();
A
StringJoiner
可以用于使用Collectors.joining(CharSequence)
从Stream
创建格式化的输出。 例如: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)
-
-
构造方法摘要
构造方法 Constructor 描述 StringJoiner(CharSequence delimiter)
构造一个StringJoiner
与其中不带字符,没有prefix
或suffix
,和所提供的副本delimiter
。StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
构造一个StringJoiner
使用的供给拷贝在不带字符prefix
,delimiter
和suffix
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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
本身就可以连接这些通话 - 异常
-
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
。 请注意,如果未调用add方法,则将返回String
表示(prefix + suffix
或emptyValue
)的长度。 该值应相当于toString().length()
。- 结果
-
当前值的长度为
StringJoiner
-
-