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

クラスStringJoiner

java.lang.Object
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
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    prefixおよびsuffixを指定せずに、指定されたdelimiterのコピーを使用して、文字を含まないStringJoinerを構築します。
    StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
    指定されたprefixdelimiterおよびsuffixのコピーを使用して、文字を含まないStringJoinerを構築します。
  • メソッドのサマリー

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

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • 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文字が返される)。
      オーバーライド:
      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の現在値の長さ