Module  java.base
软件包  java.util

Class 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)
    • 构造方法详细信息

      • StringJoiner

        public StringJoiner​(CharSequence delimiter)
        构造一个StringJoiner其中没有字符,没有prefixsuffix ,以及所提供的delimiter的副本。 如果没有字符被添加到StringJoiner种方法访问它被调用的值,它不会返回一个prefixsuffix在结果(或其特性),除非setEmptyValue已首先被调用。
        参数
        delimiter - 要添加到 StringJoiner每个元素之间的字符序列
        异常
        NullPointerException - 如果 delimiternull
      • StringJoiner

        public StringJoiner​(CharSequence delimiter,
                            CharSequence prefix,
                            CharSequence suffix)
        构造一个StringJoiner使用的供给拷贝在不带字符prefixdelimitersuffix 如果没有字符被添加到StringJoiner并且访问其字符串值的方法被调用,则返回结果中的prefix + suffix (或其属性),除非首先调用了setEmptyValue
        参数
        delimiter - 要添加到 StringJoiner每个元素之间使用的字符序列
        prefix - 开头使用的字符序列
        suffix - 最后使用的字符序列
        异常
        NullPointerException -如果 prefixdelimiter ,或 suffixnull
    • 方法详细信息

      • setEmptyValue

        public StringJoiner setEmptyValue​(CharSequence emptyValue)
        设置在确定此StringJoiner的字符串表示时使用的字符序列,并且尚未添加任何元素,即当它为空时。 为此目的提供emptyValue参数的副本。 请注意,一旦调用了一个add方法, StringJoiner不再被认为是空的,即使添加的元素对应于空的String
        参数
        emptyValue - 返回值为空的 StringJoiner
        结果
        这个 StringJoiner本身就可以连接这些通话
        异常
        NullPointerException - 当 emptyValue参数是 null
      • toString

        public String toString​()
        返回当前值,由的 prefix ,值加入迄今由分离 delimitersuffix ,除非没有元素已经在这种情况下,被添加 prefix + suffixemptyValue返回字符。
        重写:
        toStringObject
        结果
        该字符串表示为 StringJoiner
      • add

        public StringJoiner add​(CharSequence newElement)
        将给定的副本CharSequence值作为下一个元素StringJoiner值。 如果newElementnull ,则添加"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​()
        返回此StringJoinerString表示的StringJoiner 请注意,如果未调用add方法,则将返回String表示( prefix + suffixemptyValue )的长度。 该值应相当于toString().length()
        结果
        当前值的长度为 StringJoiner