覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

String#joinで文字列連結

Java8で増えたString#joinを使うと配列やListの要素を文字列連結するのが楽です。地味に便利です。

Listをカンマで連結する例で動きの確認をしておきます


複数要素の場合

List<String> twoList = Arrays.asList("A", "B");
List<String> threeList = Arrays.asList("A", "B", "C");

System.out.println(twoList + " -> " + String.join(",", twoList));
System.out.println(threeList + " -> " + String.join(",", threeList));

■実行結果

[A, B] -> A,B
[A, B, C] -> A,B,C

想定通りに指定したデリミタで各要素が連結されます


1要素の場合

List<String> singleList = Collections.singletonList("Hello");

System.out.println(singleList + " -> " + String.join(",", singleList));

■実行結果

[Hello] -> Hello

1要素でも正常に動作します。当然ですが連結結果にデリミタの文字は現れません。


要素数=0の場合

List<String> emptyList = Collections.emptyList();

System.out.println(emptyList + " -> " + String.join(",", emptyList));

■実行結果

[] -> 

空Listを連結すると空文字列が返されます


要素にnullを含む場合

List<String> includeNullList = Arrays.asList("A", null, "C");

System.out.println(includeNullList + " -> " + String.join(",", includeNullList));

■実行結果

[A, null, C] -> A,null,C

nullの要素は、"null"という文字列として扱われて連結されます


List自体がnullの場合

List<String> nullList = null;
System.out.println(nullList + " -> " + String.join(",", nullList));

■実行結果

Exception in thread "main" java.lang.NullPointerException
    at java.util.Objects.requireNonNull(Objects.java:203)
    at java.lang.String.join(String.java:2501)
    at trial.app.string.StringJoinLauncher.main(StringJoinLauncher.java:26)

List自体がnullの場合はNullPointerExceptionがスローされます



関連エントリ