Javaで文字列を結合する方法といえば?
Java では昔から + 演算子や StringBuilder を使って文字列結合してきましたが、
Java 8 以降では String.join を使うことで、よりシンプルで読みやすいコードが書けます。
本記事では String.join の基本から応用まで整理し、
StringBuilder との違いや使い分け方もしっかり解説します。
1. String.joinの基本的な使い方
✅ 例:リストの要素を結合する
-
第1引数 = 区切り文字
-
第2引数 = 対象コレクション
✅ 区切り文字なしで結合
✅ 空文字・nullに注意
null が含まれると NullPointerException になるので注意。
対処例:null排除→join
Collectors.joiningもString.joinと同じ用途で便利
2. StringBuilder とどちらを使うべき?
| 用途 | おすすめ |
|---|---|
| 単純にリストを結合 | ✅ String.join |
| null を無視したい | ✅ Collectors.joining |
| ループ内で条件付き結合 | ✅ StringBuilder |
| 超大量結合(性能重視) | ✅ StringBuilder |
3. StringBuilder との比較例
✅ String.join
✅ StringBuilder
短い処理なら
String.joinが圧倒的に読みやすい
4. Stream API + joining の活用例(上級)
✅ 空文字やnullを弾いて結合
✅ 改行区切り
5. まとめ
| ポイント | 内容 |
|---|---|
| String.join はシンプルで可読性高い | ✅ Java8+で推奨 |
| null をそのまま結合しない | → Stream + Collectors.joining |
| 複雑な結合や大量処理 | → StringBuilder |
✅ 追記:よくある質問(FAQ)
Q1. String.join と Collectors.joining の違いは?
| 項目 | String.join | Collectors.joining |
|---|---|---|
| 対象 | 配列・Iterable | Stream |
| null許可 | ❌ NPE | ✅ filter可能 |
| 機能 | シンプル | 柔軟(prefix/suffixも可) |
Q2. どっちを使えばいい?
-
簡単な結合 →
String.join -
null処理や変換 → Stream + joining
