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
- 関連項目:
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明StringJoiner
(CharSequence delimiter) prefix
およびsuffix
を指定せずに、指定されたdelimiter
のコピーを使用して、文字を含まないStringJoiner
を構築します。StringJoiner
(CharSequence delimiter, CharSequence prefix, CharSequence suffix) 指定されたprefix
、delimiter
およびsuffix
のコピーを使用して、文字を含まないStringJoiner
を構築します。 -
メソッドのサマリー
修飾子と型メソッド説明add
(CharSequence newElement) 指定されたCharSequence
値のコピーをStringJoiner
値の次の要素として追加します。int
length()
このStringJoiner
のString
表現の長さを返します。merge
(StringJoiner other) 指定されたStringJoiner
の接頭辞と接尾辞を除いた内容が空でない場合は、それを次の要素として追加します。setEmptyValue
(CharSequence emptyValue) このStringJoiner
の文字列表現を決定するときに要素がまだ追加されていない(つまり、空である)場合に使用する文字のシーケンスを設定します。toString()
prefix
、これまで追加された値(delimiter
で区切られている)、およびsuffix
で構成された現在の値を返します(追加された要素が1つもない場合を除く。その場合は、prefix + suffix
またはemptyValue
文字が返される)。
-
コンストラクタの詳細
-
StringJoiner
public StringJoiner(CharSequence delimiter) prefix
およびsuffix
を指定せずに、指定されたdelimiter
のコピーを使用して、文字を含まないStringJoiner
を構築します。StringJoiner
に文字が追加されていないときに、その値にアクセスするメソッドが呼び出された場合、setEmptyValue
が先に呼び出されていないかぎり、結果にはprefix
やsuffix
(またはそれらのプロパティ)は返されません。- パラメータ:
delimiter
-StringJoiner
値に追加される各要素の間に使用する文字シーケンス- 例外:
NullPointerException
-delimiter
がnull
である場合
-
StringJoiner
public StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix) 指定されたprefix
、delimiter
およびsuffix
のコピーを使用して、文字を含まないStringJoiner
を構築します。StringJoiner
に文字が追加されていないときに、その文字列値にアクセスするメソッドが呼び出された場合、setEmptyValue
が先に呼び出されていないかぎり、結果にはprefix + suffix
(またはそれらのプロパティ)が返されます。- パラメータ:
delimiter
-StringJoiner
に追加される各要素の間に使用する文字シーケンスprefix
- 先頭に使用する文字シーケンスsuffix
- 末尾に使用する文字シーケンス- 例外:
NullPointerException
-prefix
、delimiter
またはsuffix
がnull
である場合
-
-
メソッドの詳細
-
setEmptyValue
public StringJoiner setEmptyValue(CharSequence emptyValue) このStringJoiner
の文字列表現を決定するときに要素がまだ追加されていない(つまり、空である)場合に使用する文字のシーケンスを設定します。 この目的のために、emptyValue
パラメータのコピーが作成されます。 addメソッドが呼び出された後は、追加された要素が空のString
に相当する場合でも、StringJoiner
は空とは見なされなくなります。- パラメータ:
emptyValue
- 空のStringJoiner
の値として返す文字- 戻り値:
- 呼出しの連鎖を可能にするため、この
StringJoiner
自体 - 例外:
NullPointerException
-emptyValue
パラメータがnull
である場合
-
toString
-
add
public StringJoiner add(CharSequence newElement) 指定されたCharSequence
値のコピーをStringJoiner
値の次の要素として追加します。newElement
がnull
の場合は、"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()このStringJoiner
のString
表現の長さを返します。 addメソッドが呼び出されたことがない場合は、String
表現(prefix + suffix
またはemptyValue
)の長さが返されます。 値はtoString().length()
と等しくなるはずです。- 戻り値:
StringJoiner
の現在値の長さ
-