Java : StringJoiner - API使用例
StringJoiner (Java SE 22 & JDK 22) の使い方まとめです。
ほとんどのメソッドにサンプルコードがあります。
API仕様書のおともにどうぞ。
概要
StringJoinerは、指定した文字列で区切られた文字列を作成します。
また、接頭辞(prefix)と接尾辞(suffix)を指定できます。
final var sj = new StringJoiner("-", "[", "]");
sj.add("aaa").add("bbb").add("ccc");
final var ret = sj.toString();
System.out.println(ret); // "[aaa-bbb-ccc]"
final var sj = new StringJoiner(", ", "(", ")");
sj.add("xxx").add("yyy").add("zzz");
final var ret = sj.toString();
System.out.println(ret); // "(xxx, yyy, zzz)"
類似のAPIとして、String.joinと、Collectors.joiner があります。
final var list = List.of("aaa", "bbb", "ccc");
final var ret = String.join("-", list);
System.out.println(ret); // "aaa-bbb-ccc"
final var list = List.of("aaa", "bbb", "ccc");
final var ret = list.stream().collect(Collectors.joining("-", "[", "]"));
System.out.println(ret); // "[aaa-bbb-ccc]"
コンストラクタ
StringJoiner (CharSequence delimiter)
final var sj = new StringJoiner("-");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj); // "aaa-bbb-ccc"
StringJoiner (CharSequence delimiter, CharSequence prefix, CharSequence suffix)
final var sj = new StringJoiner("-", "[", "]");
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj); // "[aaa-bbb-ccc]"
メソッド
StringJoiner add (CharSequence newElement)
final var sj = new StringJoiner(", ");
sj.add("aaa").add("bbb").add("ccc").add(null);
System.out.println(sj); // "aaa, bbb, ccc, null"
int length ()
final var sj = new StringJoiner("-", "[", "]");
System.out.println(sj); // "[]"
System.out.println(sj.length()); // 2
sj.add("aaa");
System.out.println(sj); // "[aaa]"
System.out.println(sj.length()); // 5
sj.add("bbb");
System.out.println(sj); // "[aaa-bbb]"
System.out.println(sj.length()); // 9
StringJoiner merge (StringJoiner other)
final var sj1 = new StringJoiner("-", "[", "]");
final var sj2 = new StringJoiner(":");
sj1.add("aaa").add("bbb").add("ccc");
System.out.println(sj1); // "[aaa-bbb-ccc]"
sj2.add("012").add("345").add("678");
System.out.println(sj2); // "012:345:678"
sj1.merge(sj2).add("eee");
System.out.println(sj1); // "[aaa-bbb-ccc-012:345:678-eee]"
StringJoiner setEmptyValue (CharSequence emptyValue)
final var sj = new StringJoiner("-", "[", "]");
System.out.println(sj); // "[]"
sj.setEmptyValue("empty");
System.out.println(sj); // "empty"
sj.add("aaa").add("bbb").add("ccc");
System.out.println(sj); // "[aaa-bbb-ccc]"
String toString ()
final var sj = new StringJoiner("-", "[", "]");
sj.add("aaa").add("bbb").add("ccc");
final var ret = sj.toString();
System.out.println(ret); // "[aaa-bbb-ccc]"