Package org.miaixz.bus.core.text
Class StringJoiner
java.lang.Object
org.miaixz.bus.core.text.StringJoiner
- All Implemented Interfaces:
Serializable,Appendable
字符串连接器(拼接器),通过给定的字符串和多个元素,拼接为一个字符串
相较于
StringJoiner提供更加灵活的配置,包括:
- 支持任意Appendable接口实现
- 支持每个元素单独wrap
- 支持自定义null的处理逻辑
- 支持自定义默认结果
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionStringJoiner(Appendable appendable, CharSequence delimiter) 构造StringJoiner(Appendable appendable, CharSequence delimiter, CharSequence prefix, CharSequence suffix) 构造StringJoiner(CharSequence delimiter) 构造StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix) 构造 -
Method Summary
Modifier and TypeMethodDescriptionappend(char c) append(CharSequence csq) append(CharSequence csq, int startInclude, int endExclude) <E> StringJoinerappend(Iterable<E> iterable, Function<? super E, ? extends CharSequence> toStrFunc) 追加Iterator中的元素到拼接器中<E> StringJoinerappend(Iterator<E> iterator, Function<? super E, ? extends CharSequence> toStrFunc) 追加Iterator中的元素到拼接器中<T> StringJoiner追加Iterator中的元素到拼接器中<T> StringJoinerappend(T[] array) 追加数组中的元素到拼接器中<T> StringJoinerappend(T[] array, Function<T, ? extends CharSequence> toStrFunc) 追加数组中的元素到拼接器中intlength()长度 长度计算方式为prefix + suffix + content 此方法结果与toString().length()一致。merge(StringJoiner stringJoiner) 合并一个StrJoiner 到当前的StrJoiner 合并规则为,在尾部直接追加,当存在prefix时,如果wrapElement为false,则去除之。static StringJoinerof(CharSequence delimiter) 使用指定分隔符创建StrJoinerstatic StringJoinerof(CharSequence delimiter, CharSequence prefix, CharSequence suffix) 使用指定分隔符创建StrJoinerstatic StringJoinerof(StringJoiner joiner) 根据已有StrJoiner配置新建一个新的StrJoinersetDelimiter(CharSequence delimiter) 设置分隔符setEmptyResult(String emptyResult) 设置当没有任何元素加入时,默认返回的字符串,默认""setNullMode(StringJoiner.NullMode nullMode) 设置null元素处理逻辑setPrefix(CharSequence prefix) 设置前缀setSuffix(CharSequence suffix) 设置后缀setWrapElement(boolean wrapElement) 设置前缀和后缀是否包装每个元素toString()
-
Constructor Details
-
StringJoiner
构造- Parameters:
delimiter- 分隔符,null表示无连接符,直接拼接
-
StringJoiner
构造- Parameters:
appendable- 字符串追加器,拼接的字符串都将加入到此,null使用默认StringBuilderdelimiter- 分隔符,null表示无连接符,直接拼接
-
StringJoiner
构造- Parameters:
delimiter- 分隔符,null表示无连接符,直接拼接prefix- 前缀suffix- 后缀
-
StringJoiner
public StringJoiner(Appendable appendable, CharSequence delimiter, CharSequence prefix, CharSequence suffix) 构造- Parameters:
appendable- 字符串追加器,拼接的字符串都将加入到此,null使用默认StringBuilderdelimiter- 分隔符,null表示无连接符,直接拼接prefix- 前缀suffix- 后缀
-
-
Method Details
-
of
根据已有StrJoiner配置新建一个新的StrJoiner- Parameters:
joiner- 已有StrJoiner- Returns:
- 新的StrJoiner,配置相同
-
of
使用指定分隔符创建StrJoiner- Parameters:
delimiter- 分隔符- Returns:
- StringJoiner
-
of
使用指定分隔符创建StrJoiner- Parameters:
delimiter- 分隔符prefix- 前缀suffix- 后缀- Returns:
- StringJoiner
-
setDelimiter
设置分隔符- Parameters:
delimiter- 分隔符,null表示无连接符,直接拼接- Returns:
- this
-
setPrefix
设置前缀- Parameters:
prefix- 前缀- Returns:
- this
-
setSuffix
设置后缀- Parameters:
suffix- 后缀- Returns:
- this
-
setWrapElement
设置前缀和后缀是否包装每个元素- Parameters:
wrapElement- true表示包装每个元素,false包装整个字符串- Returns:
- this
-
setNullMode
设置null元素处理逻辑- Parameters:
nullMode- 逻辑枚举,可选忽略、转换为""或转换为null字符串- Returns:
- this
-
setEmptyResult
设置当没有任何元素加入时,默认返回的字符串,默认""- Parameters:
emptyResult- 默认字符串- Returns:
- this
-
append
- Parameters:
obj- 对象,支持数组、集合等- Returns:
- this
-
append
追加数组中的元素到拼接器中- Type Parameters:
T- 元素类型- Parameters:
array- 元素数组- Returns:
- this
-
append
追加Iterator中的元素到拼接器中- Type Parameters:
T- 元素类型- Parameters:
iterator- 元素列表- Returns:
- this
-
append
追加数组中的元素到拼接器中- Type Parameters:
T- 元素类型- Parameters:
array- 元素数组toStrFunc- 元素对象转换为字符串的函数- Returns:
- this
-
append
public <E> StringJoiner append(Iterable<E> iterable, Function<? super E, ? extends CharSequence> toStrFunc) 追加Iterator中的元素到拼接器中- Type Parameters:
E- 元素类型- Parameters:
iterable- 元素列表toStrFunc- 元素对象转换为字符串的函数- Returns:
- this
-
append
public <E> StringJoiner append(Iterator<E> iterator, Function<? super E, ? extends CharSequence> toStrFunc) 追加Iterator中的元素到拼接器中- Type Parameters:
E- 元素类型- Parameters:
iterator- 元素列表toStrFunc- 元素对象转换为字符串的函数- Returns:
- this
-
append
- Specified by:
appendin interfaceAppendable
-
append
- Specified by:
appendin interfaceAppendable
-
append
- Specified by:
appendin interfaceAppendable
-
merge
合并一个StrJoiner 到当前的StrJoiner 合并规则为,在尾部直接追加,当存在prefix时,如果wrapElement为false,则去除之。- Parameters:
stringJoiner- 其他的StrJoiner- Returns:
- this
-
length
public int length()长度 长度计算方式为prefix + suffix + content 此方法结果与toString().length()一致。- Returns:
- 长度,如果结果为
null,返回-1
-
toString
-