モジュール java.base
パッケージ java.util

クラスStringJoiner


  • public final class StringJoiner
    extends Object
    StringJoinerは、デリミタで区切られ、(オプション)指定された接頭辞から始まり、指定された接尾辞で終わる文字のシーケンスを構築するために使用されます。

    StringJoinerに何かが追加される前は、そのsj.toString()メソッドはデフォルトでprefix + suffixを返します。 ただし、setEmptyValueメソッドが呼び出された場合は、指定されたemptyValueがかわりに返されます。 これを使用して、たとえば、セット表記を使用して空のセットを表す文字列("{}")を作成できます。ここでは、prefix"{"で、suffix"}"であり、StringJoinerには何も追加されていません。

    APIのノート:

    "[George:Sally:Fred]"という文字列は、次のように構築できます。

     
     StringJoiner sj = new StringJoiner(":", "[", "]");
     sj.add("George").add("Sally").add("Fred");
     String desiredString = sj.toString();
     

    Collectors.joining(CharSequence)を使用してStreamから書式設定された出力を作成する場合に、StringJoinerを利用できます。 次に例を示します。

     
     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​(CharSequence delimiter)
      prefixおよびsuffixを指定せずに、指定されたdelimiterのコピーを使用して、文字を含まないStringJoinerを構築します。
      StringJoiner​(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
      指定されたprefixdelimiterおよびsuffixのコピーを使用して、文字を含まないStringJoinerを構築します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      StringJoiner add​(CharSequence newElement)
      指定されたCharSequence値のコピーを、StringJoiner値の次の要素として追加します。
      int length()
      このStringJoinerString表現の長さを返します。
      StringJoiner merge​(StringJoiner other)
      指定されたStringJoinerの接頭辞と接尾辞を除いた内容が空でない場合は、それを次の要素として追加します。
      StringJoiner setEmptyValue​(CharSequence emptyValue)
      このStringJoinerの文字列表現を決定するときに要素がまだ追加されていない(つまり、空である)場合に使用する文字のシーケンスを設定します。
      String toString()
      prefix、これまで追加された値(delimiterで区切られている)、およびsuffixで構成された現在の値を返します(追加された要素が1つもない場合を除く。その場合は、prefix + suffixまたはemptyValue文字が返される)。
    • コンストラクタの詳細

      • StringJoiner

        public StringJoiner​(CharSequence delimiter)
        prefixおよびsuffixを指定せずに、指定されたdelimiterのコピーを使用して、文字を含まないStringJoinerを構築します。 StringJoinerに文字が追加されていないときに、その値にアクセスするメソッドが呼び出された場合、setEmptyValueが先に呼び出されていないかぎり、結果にはprefixsuffix (またはそれらのプロパティ)は返されません。
        パラメータ:
        delimiter - StringJoiner値に追加される各要素の間に使用する文字シーケンス
        例外:
        NullPointerException - delimiternullである場合
      • StringJoiner

        public StringJoiner​(CharSequence delimiter,
                            CharSequence prefix,
                            CharSequence suffix)
        指定されたprefixdelimiterおよびsuffixのコピーを使用して、文字を含まないStringJoinerを構築します。 StringJoinerに文字が追加されていないときに、その文字列値にアクセスするメソッドが呼び出された場合、setEmptyValueが先に呼び出されていないかぎり、結果にはprefix + suffix (またはそれらのプロパティ)が返されます。
        パラメータ:
        delimiter - StringJoinerに追加される各要素の間に使用する文字シーケンス
        prefix - 先頭に使用する文字シーケンス
        suffix - 末尾に使用する文字シーケンス
        例外:
        NullPointerException - prefixdelimiterまたはsuffixnullである場合
    • メソッドの詳細

      • setEmptyValue

        public StringJoiner setEmptyValue​(CharSequence emptyValue)
        このStringJoinerの文字列表現を決定するときに要素がまだ追加されていない(つまり、空である)場合に使用する文字のシーケンスを設定します。 この目的のために、emptyValueパラメータのコピーが作成されます。 addメソッドが呼び出された後は、追加された要素が空のStringに相当する場合でも、StringJoinerは空とは見なされなくなります。
        パラメータ:
        emptyValue - 空のStringJoinerの値として返す文字
        戻り値:
        呼出しの連鎖を可能にするため、このStringJoiner自体
        例外:
        NullPointerException - emptyValueパラメータがnullである場合
      • toString

        public String toString()
        prefix、これまで追加された値(delimiterで区切られている)、およびsuffixで構成された現在の値を返します(追加された要素が1つもない場合を除く。その場合は、prefix + suffixまたはemptyValue文字が返される)。
        Overrides:
        toString 、クラス:  Object
        戻り値:
        この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
        戻り値:
        このStringJoiner
        例外:
        NullPointerException - 他方のStringJoinerがnullである場合
      • length

        public int length()
        このStringJoinerString表現の長さを返します。 addメソッドが呼び出されたことがない場合は、String表現(prefix + suffixまたはemptyValue)の長さが返されます。 値はtoString().length()と等しくなるはずです。
        戻り値:
        StringJoinerの現在値の長さ