Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
文字列.split() / String.join()
文字列を区切り文字で分割して配列に変換したり、配列や複数の文字列を区切り文字で結合したりするメソッドです。CSVデータの解析やテンプレート生成などに広く使われます。
構文
// 正規表現で文字列を分割し、文字列配列を返します。 文字列.split(String regex); 文字列.split(String regex, int limit); // 区切り文字で複数の文字列を結合します(Java 8 以降)。 String.join(CharSequence delimiter, CharSequence... elements); String.join(CharSequence delimiter, Iterable<? extends CharSequence> elements); // 書式文字列を使って文字列を整形します。 String.format(String format, Object... args);
メソッド一覧
| メソッド | 概要 |
|---|---|
| split(String regex) | 正規表現に一致する位置で文字列を分割し、String[] を返します。末尾の空文字列は除去されます。 |
| split(String regex, int limit) | 第2引数で分割数の上限を指定します。負の値を指定すると末尾の空文字列も保持されます。 |
| String.join(delimiter, elements) | 指定した区切り文字で複数の文字列を結合した新しい文字列を返します。 |
| String.format(format, args) | 書式文字列に従って引数を埋め込んだ文字列を返します。printf に似た書式指定が使えます。 |
サンプルコード
// split() でカンマ区切りの文字列を分割します。
String csv = "apple,banana,cherry";
String[] fruits = csv.split(",");
for (String fruit : fruits) {
System.out.println(fruit); // 『apple』『banana』『cherry』と順に出力されます。
}
// 分割数を制限します。
String data = "a:b:c:d";
String[] parts = data.split(":", 2); // 最大2つに分割します。
System.out.println(parts[0]); // 『a』と出力されます。
System.out.println(parts[1]); // 『b:c:d』と出力されます。
// String.join() で配列を結合します。
String joined = String.join(", ", "Java", "Python", "Swift");
System.out.println(joined); // 『Java, Python, Swift』と出力されます。
// List を結合します。
java.util.List<String> list = java.util.Arrays.asList("赤", "青", "緑");
System.out.println(String.join(" / ", list)); // 『赤 / 青 / 緑』と出力されます。
// String.format() で書式付き文字列を生成します。
String msg = String.format("氏名: %s、年齢: %d歳", "山田太郎", 30);
System.out.println(msg); // 『氏名: 山田太郎、年齢: 30歳』と出力されます。
// 小数点以下2桁で表示します。
double price = 1234.5;
System.out.println(String.format("価格: %.2f円", price)); // 『価格: 1234.50円』と出力されます。
概要
『split()』は正規表現を区切り文字として文字列を分割します。ピリオド(.)やパイプ(|)など、正規表現で特別な意味を持つ文字を区切りに使う場合は \\. や \\| のようにエスケープが必要です。
『String.join()』はJava 8で追加された静的メソッドで、配列やリストを手軽に結合できます。複雑な文字列操作が必要な場合は『StringBuilder の append()』を使うとより効率的です。
文字列の置換には『replace() / replaceAll()』、文字配列との変換には『toCharArray()』を使用してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。