Class TextJoiner

java.lang.Object
org.aoju.bus.core.text.TextJoiner
All Implemented Interfaces:
Serializable, Appendable

public class TextJoiner extends Object implements Appendable, Serializable
字符连接器(拼接器),通过给定的字符串和多个元素,拼接为一个字符串
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • TextJoiner

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

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

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

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

    • of

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

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

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

      public TextJoiner setDelimiter(CharSequence delimiter)
      设置分隔符
      Parameters:
      delimiter - 分隔符
      Returns:
      this
    • setPrefix

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

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

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

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

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

      public TextJoiner append(Object object)
      追加对象到拼接器中
      Parameters:
      object - 对象,支持数组、集合等
      Returns:
      this
    • append

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

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

      public <T> TextJoiner append(T[] array, Function<T,? extends CharSequence> func)
      追加数组中的元素到拼接器中
      Type Parameters:
      T - 元素类型
      Parameters:
      array - 元素数组
      func - 元素对象转换为字符串的函数
      Returns:
      this
    • append

      public <E> TextJoiner append(Iterable<E> iterable, Function<? super E,? extends CharSequence> func)
      追加Iterator中的元素到拼接器中
      Type Parameters:
      E - 元素类型
      Parameters:
      iterable - 元素列表
      func - 元素对象转换为字符串的函数
      Returns:
      this
    • append

      public <E> TextJoiner append(Iterator<E> iterator, Function<? super E,? extends CharSequence> func)
      追加Iterator中的元素到拼接器中
      Type Parameters:
      E - 元素类型
      Parameters:
      iterator - 元素列表
      func - 元素对象转换为字符串的函数
      Returns:
      this
    • append

      public TextJoiner append(CharSequence text)
      Specified by:
      append in interface Appendable
    • append

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

      public TextJoiner append(char c)
      Specified by:
      append in interface Appendable
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • merge

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

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