カテゴリ: Javaの文字列操作 更新日: 2025/04/17

Java の文字列を特定の文字で分割する「split()」の基本

090
Java の文字列を特定の文字で分割する「split()」の基本

新人と先輩の会話形式で理解しよう

新人

「Java で文字列を特定の文字で分割する方法はありますか?」

先輩

「Java では split() メソッドを使うことで、指定した文字を区切りにして文字列を分割できるよ。」

新人

「具体的にはどうやって使うんですか?」

先輩

「それじゃあ、基本的な使い方を見ていこう!」

1. split() メソッドとは?(基本的な説明)

1. split() メソッドとは?(基本的な説明)
1. split() メソッドとは?(基本的な説明)

split() メソッドは、指定した区切り文字(デリミタ)で文字列を分割し、配列として取得するメソッドです。

split() の基本的な特徴

  • 引数に指定した文字で文字列を分割する
  • 分割後の各部分は配列として取得できる
  • 空白やカンマなど、好きな文字を区切りとして使える

例えば、CSV(カンマ区切りのデータ)を処理するときなどに便利です。

2. split() を使った基本的な文字列の分割

2. split() を使った基本的な文字列の分割
2. split() を使った基本的な文字列の分割

まずは、基本的な split() の使い方を見てみましょう。

カンマで区切られた文字列を分割する


public class SplitExample {
    public static void main(String[] args) {
        String text = "りんご,バナナ,オレンジ";
        String[] fruits = text.split(",");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

りんご
バナナ
オレンジ

コードの解説

  • String text = "りんご,バナナ,オレンジ"; … カンマ区切りの文字列を用意
  • text.split(","); … カンマ(,)を区切り文字として分割
  • 配列 fruits に分割された文字列が格納される
  • for 文で配列を順番に取り出して出力

このように split() を使えば、簡単に文字列を分割することができます。

3. 複数の区切り文字を使った split() の使い方

3. 複数の区切り文字を使った split() の使い方
3. 複数の区切り文字を使った split() の使い方

split() メソッドは、正規表現を使うことで複数の区切り文字で文字列を分割することができます。

カンマやスペースで分割する

例えば、カンマ(,)やスペース( )のどちらかで区切られた文字列を分割するには、以下のように記述します。


public class SplitMultipleDelimiters {
    public static void main(String[] args) {
        String text = "りんご, バナナ オレンジ";
        String[] fruits = text.split("[, ]+");

        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

りんご
バナナ
オレンジ

コードの解説

  • split("[, ]+"); … カンマ(,)またはスペース( )を区切り文字として指定
  • 正規表現の [, ]+ により、複数の区切り文字が連続しても正しく分割される
  • 出力結果では「りんご」「バナナ」「オレンジ」の3つに分割される

このように split() を使えば、異なる区切り文字をまとめて処理することができます。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. split() で得られた配列の扱い方

4. split() で得られた配列の扱い方
4. split() で得られた配列の扱い方

split() を使うと、分割した文字列は配列(String[])として取得できます。この配列を使って処理を行う方法を見てみましょう。

配列の要素数を確認する


public class SplitArrayExample {
    public static void main(String[] args) {
        String text = "A-B-C-D";
        String[] parts = text.split("-");

        System.out.println("要素の数: " + parts.length);
    }
}

要素の数: 4

コードの解説

  • split("-") を使ってハイフン(-)で文字列を分割
  • 配列 parts に分割された文字列が格納される
  • parts.length を使って要素の数を確認

このように split() で得られた配列は、通常の配列と同じように扱うことができます。

5. split() の正規表現の活用

5. split() の正規表現の活用
5. split() の正規表現の活用

split() では、正規表現を活用することで、より柔軟に文字列を分割することが可能です。

数字と文字を分割する

例えば、数字とアルファベットが混在した文字列を分割する場合、以下のように記述できます。


public class SplitWithRegex {
    public static void main(String[] args) {
        String text = "A1B2C3D4";
        String[] result = text.split("\\d+");

        for (String str : result) {
            System.out.println(str);
        }
    }
}

A
B
C
D

コードの解説

  • split("\\d+") … 数字(\d+)を区切り文字として分割
  • 結果として「A」「B」「C」「D」に分割される

このように、正規表現を使えば、特定のパターンに基づいて文字列を分割することができます。

6. split() を使った実践的なサンプルコード

6. split() を使った実践的なサンプルコード
6. split() を使った実践的なサンプルコード

ここでは、split() を活用した実践的なサンプルコードを紹介します。

CSVデータの分割と整形

カンマ区切りのCSVデータを split() を使って分割し、それぞれの値を整形して表示する例です。


public class CSVParser {
    public static void main(String[] args) {
        String csv = "1001,田中,30,東京";
        String[] data = csv.split(",");

        System.out.println("ID: " + data[0]);
        System.out.println("名前: " + data[1]);
        System.out.println("年齢: " + data[2]);
        System.out.println("住所: " + data[3]);
    }
}

ID: 1001
名前: 田中
年齢: 30
住所: 東京

コードの解説

  • CSV形式のデータをカンマ(,)で分割
  • 配列 data に各要素を格納
  • それぞれの値を適切なラベルをつけて表示

このように、split() を使うことで、CSVデータを簡単に処理できます。

7. split() と StringTokenizer の違い

7. split() と StringTokenizer の違い
7. split() と StringTokenizer の違い

Java には、文字列を区切り文字で分割するもう一つの方法として StringTokenizer クラスがあります。split() メソッドとの違いを見てみましょう。

split() の特徴

  • 正規表現を利用できる
  • 配列で結果を取得する
  • 複数の区切り文字やパターンを指定できる

StringTokenizer の特徴

  • 一つの区切り文字しか指定できない
  • 配列ではなく、トークンを1つずつ取得する
  • メモリ効率が良い(配列を作成しない)

StringTokenizer の使用例


import java.util.StringTokenizer;

public class StringTokenizerExample {
    public static void main(String[] args) {
        String text = "A-B-C-D";
        StringTokenizer tokenizer = new StringTokenizer(text, "-");

        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}

A
B
C
D

どちらを使うべきか?

  • 柔軟な処理が必要なら split() を使う
  • パフォーマンスを重視する場合は StringTokenizer を使う

ただし、現在の Java では split() の方が一般的に使用されます。

8. 練習問題:「split()」を使ったプログラムを作ろう

8. 練習問題:「split()」を使ったプログラムを作ろう
8. 練習問題:「split()」を使ったプログラムを作ろう

最後に、split() を使ったプログラムを実際に書いてみましょう。

問題

以下のデータを split() で分割し、それぞれの情報を出力するプログラムを作成してください。

入力データ:


2024-04-01|田中|30歳|東京
    

出力例:


日付: 2024-04-01
名前: 田中
年齢: 30歳
住所: 東京
    

解答例


public class SplitPractice {
    public static void main(String[] args) {
        String data = "2024-04-01|田中|30歳|東京";
        String[] details = data.split("\\|");

        System.out.println("日付: " + details[0]);
        System.out.println("名前: " + details[1]);
        System.out.println("年齢: " + details[2]);
        System.out.println("住所: " + details[3]);
    }
}

日付: 2024-04-01
名前: 田中
年齢: 30歳
住所: 東京

ポイント

  • データを "|" で区切るため、正規表現の \\| を使用
  • 分割したデータを配列に格納し、それぞれ出力

このように、split() を活用することで、簡単にデータを分割して処理できます。

Javaの文字列操作の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク