Javaで文字列を分割する方法!サンプルコード3選!

Java Java

Javaで文字列を分割する方法について書いています。
文字列を分割するときには、文字列からsplitメソッドを呼び出すと良いです。

最初にsplitメソッドの使い方を解説して、その後に使いそうなサンプルコードを3つ書きました。
載せているコードについては、OpenJDKのバージョン19で動作を確認しました。

splitメソッドの使い方

文字列からsplitメソッドを呼び出すことで、文字列を分割することができます。
例えば、下記のように使うことができます。

String fruitsText = "orange grape apple banana";
String[] fruits = fruitsText.split(" ");

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

最初にfruitsText変数に「orange grape apple banana」という文字列を代入しています。
次の処理で、fruitsText変数からsplitメソッドを呼び出しています。

splitメソッドに、引数として渡すのは正規表現です。
渡した正規表現で、文字列が分割され、配列として返ってきます。

今回は引数として、半角スペースを渡しているので、半角スペースが区切り文字列になり分割されます。
fruitsText変数のそれぞれの文字列が、半角スペースで区切られて配列で返ってきます。

最後に返ってきた配列の要素数分ループして出力しています。
プログラムを実行すると、下記のように出力されます。

orange
grape
apple
banana

指定した半角スペースで文字列が分割されて、配列で返ってきたことが確認できました。

適用回数を指定する

splitメソッドの第2引数には、適用回数を指定することができます。
適用回数は分割する個数の指定です、例えば下記のように指定します。

String fruitsText = "orange grape apple banana";
String[] fruits = fruitsText.split(" ", 3);

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

先ほどのプログラムを少し変えました。
splitメソッドを呼び出しているところで、第2引数に「3」を渡しています。

これで、文字列は配列に「3」分割されます。
プログラムを実行すると、下記のように出力されました。

orange
grape
apple banana

指定した個数分、文字列が配列の要素に分割されたことが確認できました。

引数と返り値まとめ

splitメソッドの引数と返り値をまとめます。

引数

第1引数は必須で、正規表現を指定する。
第2引数はオプションで、分割の適用回数を指定する。

"分割したい文字列".split("必須な正規表現", [オプション:分割適用回数])

戻り値

分割された文字列が、文字列の配列として返ってくる。

splitメソッドのサンプルコード3選

3つのパターンでsplitメソッドを使ったサンプルコードを書いてみました。

カンマ区切りで分割する

CSVなどカンマ区切りで、文字列を分割したいときには、そのままカンマを渡すと良いです。

String drinksText = "coffee,water,milk,cola";
String[] drinks = drinksText.split(",");

for (String drink : drinks) {
    System.out.println(drink);
}

最初にdrinksText変数に「coffee,water,milk,cola」という文字列を代入しています。

次の処理で、drinksText変数からsplitメソッドを呼び出して、カンマ(,)を渡しています。
これで、カンマで文字列が区切られて、配列として返ってきます。

プログラムを実行すると、下記のようにカンマで分割されたことが確認できました。

coffee
water
milk
cola

数値を正規表現で指定して分割する

数値の箇所を正規表現で指定して分割してみます。

String text = "red123blue23green345yellow";
String[] colors = text.split("[0-9]+");

for (String color : colors) {
    System.out.println(color);
}

最初にtext変数に、数値と文字を混ぜた「red123blue23green345yellow」という文字列を代入しています。

次の処理で、splitメソッドに「[0-9]+」を渡しました。
これで、0から9の数値が1回以上続く箇所を指定しています。

colors変数に結果を受け取って出力すると、下記のようになりました。

red
blue
green
yellow

正規表現で指定した箇所で、文字列の配列に分割されました。

ファイル名(ドット)を分割する

ファイル名(拡張子を含む)ものを分割するときです。
このときにドットを指定したくなりますが、正規表現でドットは「任意の1文字」という特別な意味を持つため、エスケープして指定する必要があります。

String fileNameText = "マイファイル.txt";
String[] fileNames = fileNameText.split("\\.");

for (String fileName : fileNames) {
    System.out.println(fileName);
}

最初にfileNameText変数に、文字列の「マイファイル.txt」を指定しました。
次の処理で、fileNameText変数にsplitメソッドを呼び出して分割していますが、ドットをエスケープして「\\.」と指定しています。

これで、文字列がドットで分割されます。
プログラムを実行すると、下記のようにドットで分割されました。

マイファイル
txt

Javaで文字列を分割する方法まとめ

今回はJavaで文字列を分割する方法についてまとめました。
記事の内容をまとめると、下記になります。

・splitメソッドを使うことで、文字列を分割して、文字列の配列で受け取ることができる。
・splitメソッドの第1引数には正規表現(必須)を指定して、第2引数には適用回数(オプション)を指定する。
・文字列をカンマで分割するときには、そのままカンマを指定できた。
・文字列をドットで分割するには、ドットをエスケープする必要があった。

コメント

タイトルとURLをコピーしました