Class StringJoiner

java.lang.Object
org.miaixz.bus.core.text.StringJoiner
All Implemented Interfaces:
Serializable, Appendable

public class StringJoiner extends Object implements Appendable, Serializable
字符串连接器(拼接器),通过给定的字符串和多个元素,拼接为一个字符串 相较于StringJoiner提供更加灵活的配置,包括:
  • 支持任意Appendable接口实现
  • 支持每个元素单独wrap
  • 支持自定义null的处理逻辑
  • 支持自定义默认结果
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • StringJoiner

      public StringJoiner(CharSequence delimiter)
      构造
      Parameters:
      delimiter - 分隔符,null表示无连接符,直接拼接
    • StringJoiner

      public StringJoiner(Appendable appendable, CharSequence delimiter)
      构造
      Parameters:
      appendable - 字符串追加器,拼接的字符串都将加入到此,null使用默认StringBuilder
      delimiter - 分隔符,null表示无连接符,直接拼接
    • StringJoiner

      public StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
      构造
      Parameters:
      delimiter - 分隔符,null表示无连接符,直接拼接
      prefix - 前缀
      suffix - 后缀
    • StringJoiner

      public StringJoiner(Appendable appendable, CharSequence delimiter, CharSequence prefix, CharSequence suffix)
      构造
      Parameters:
      appendable - 字符串追加器,拼接的字符串都将加入到此,null使用默认StringBuilder
      delimiter - 分隔符,null表示无连接符,直接拼接
      prefix - 前缀
      suffix - 后缀
  • Method Details

    • of

      public static StringJoiner of(StringJoiner joiner)
      根据已有StrJoiner配置新建一个新的StrJoiner
      Parameters:
      joiner - 已有StrJoiner
      Returns:
      新的StrJoiner,配置相同
    • of

      public static StringJoiner of(CharSequence delimiter)
      使用指定分隔符创建StrJoiner
      Parameters:
      delimiter - 分隔符
      Returns:
      StringJoiner
    • of

      public static StringJoiner of(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
      使用指定分隔符创建StrJoiner
      Parameters:
      delimiter - 分隔符
      prefix - 前缀
      suffix - 后缀
      Returns:
      StringJoiner
    • setDelimiter

      public StringJoiner setDelimiter(CharSequence delimiter)
      设置分隔符
      Parameters:
      delimiter - 分隔符,null表示无连接符,直接拼接
      Returns:
      this
    • setPrefix

      public StringJoiner setPrefix(CharSequence prefix)
      设置前缀
      Parameters:
      prefix - 前缀
      Returns:
      this
    • setSuffix

      public StringJoiner setSuffix(CharSequence suffix)
      设置后缀
      Parameters:
      suffix - 后缀
      Returns:
      this
    • setWrapElement

      public StringJoiner setWrapElement(boolean wrapElement)
      设置前缀和后缀是否包装每个元素
      Parameters:
      wrapElement - true表示包装每个元素,false包装整个字符串
      Returns:
      this
    • setNullMode

      public StringJoiner setNullMode(StringJoiner.NullMode nullMode)
      设置null元素处理逻辑
      Parameters:
      nullMode - 逻辑枚举,可选忽略、转换为""或转换为null字符串
      Returns:
      this
    • setEmptyResult

      public StringJoiner setEmptyResult(String emptyResult)
      设置当没有任何元素加入时,默认返回的字符串,默认""
      Parameters:
      emptyResult - 默认字符串
      Returns:
      this
    • append

      public StringJoiner append(Object obj)
      追加对象到拼接器中,支持:
      • null,按照 nullMode 策略追加
      • array,逐个追加
      • Iterator,逐个追加
      • Iterable,逐个追加
      • Map.Entry,追加键,分隔符,再追加值
      Parameters:
      obj - 对象,支持数组、集合等
      Returns:
      this
    • append

      public <T> StringJoiner append(T[] array)
      追加数组中的元素到拼接器中
      Type Parameters:
      T - 元素类型
      Parameters:
      array - 元素数组
      Returns:
      this
    • append

      public <T> StringJoiner append(Iterator<T> iterator)
      追加Iterator中的元素到拼接器中
      Type Parameters:
      T - 元素类型
      Parameters:
      iterator - 元素列表
      Returns:
      this
    • append

      public <T> StringJoiner append(T[] array, Function<T,? extends CharSequence> toStrFunc)
      追加数组中的元素到拼接器中
      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

      public StringJoiner append(CharSequence csq)
      Specified by:
      append in interface Appendable
    • append

      public StringJoiner append(CharSequence csq, int startInclude, int endExclude)
      Specified by:
      append in interface Appendable
    • append

      public StringJoiner append(char c)
      Specified by:
      append in interface Appendable
    • merge

      public StringJoiner merge(StringJoiner stringJoiner)
      合并一个StrJoiner 到当前的StrJoiner 合并规则为,在尾部直接追加,当存在prefix时,如果wrapElementfalse,则去除之。
      Parameters:
      stringJoiner - 其他的StrJoiner
      Returns:
      this
    • length

      public int length()
      长度 长度计算方式为prefix + suffix + content 此方法结果与toString().length()一致。
      Returns:
      长度,如果结果为null,返回-1
    • toString

      public String toString()
      Overrides:
      toString in class Object