模块  java.base
软件包  java.util

Class StringJoiner


  • public final class StringJoinerextends 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();  

    StringJoiner可以用来创建从格式化输出Stream使用Collectors.joining(CharSequence) 例如:

       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本身就可以 StringJoiner这些电话
        异常
        NullPointerException - 当 emptyValue参数为 null
      • toString

        public String toString()
        返回当前值,包括 prefix ,到目前为止由 delimiter分隔的值和 suffix ,除非在这种情况下未添加任何元素,否则返回 prefix + suffixemptyValue字符。
        重写:
        toStringObject
        结果
        StringJoiner的字符串表示 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 请注意,如果未调用任何添加方法,则将返回String表示( prefix + suffixemptyValue )的长度。 该值应等于toString().length()
        结果
        当前值的长度为 StringJoiner