言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

Java辞典

  1. トップページ
  2. Java辞典
  3. 文字列.split() / String.join()

文字列.split() / String.join()

対応: String Java 1.0(1996)
split() Java 1.4(2002)
join() Java 8(2014)

文字列を区切り文字で分割して配列に変換したり、配列や複数の文字列を区切り文字で結合したりするメソッドです。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 に似た書式指定が使えます。

サンプルコード

sample_StringSplitJoin.java
class StringSplitJoin {
    public static void main(String[] args) {
        // split() でカンマ区切りの文字列を分割します。
        String csv = "岡部倫太郎,牧瀬紅莉栖,椎名まゆり";
        String[] members = csv.split(",");
        for (String member : members) {
            System.out.println(member); // 『岡部倫太郎』『牧瀬紅莉栖』『椎名まゆり』と順に出力されます。
        }

        // 分割数を制限します。
        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歳", "岡部倫太郎", 18);
        System.out.println(msg); // 『氏名: 岡部倫太郎、年齢: 18歳』と出力されます。

        // 小数点以下2桁で表示します。
        double price = 1234.5;
        System.out.println(String.format("価格: %.2f円", price)); // 『価格: 1234.50円』と出力されます。
    }
}
javac StringSplitJoin.java
java StringSplitJoin
岡部倫太郎
牧瀬紅莉栖
椎名まゆり
a
b:c:d
Java, Python, Swift
赤 / 青 / 緑
氏名: 岡部倫太郎、年齢: 18歳
価格: 1234.50円

概要

『split()』は正規表現を区切り文字として文字列を分割します。ピリオド(.)やパイプ(|)など、正規表現で特別な意味を持つ文字を区切りに使う場合は \\.\\| のようにエスケープが必要です。

『String.join()』はJava 8で追加された静的メソッドで、配列やリストを手軽に結合できます。複雑な文字列操作が必要な場合は『StringBuilder の append()』を使うとより効率的です。

文字列の置換には『replace() / replaceAll()』、文字配列との変換には『toCharArray()』を使用してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。