split()とは?Java初心者の勉強

Javaの便利なStringクラスのsplit()メソッドについて学びます。

split()とは

split()メソッドは文字列を分割し配列に戻すメソッドです。分割の条件は正規表現に指定します。

構文

String[] split(String 正規表現, 制限)

  • 正規表現(regex)には分割の条件となる正規表現が入ります。
    例:\t (タブ), \d数値
  • 制限(limit)にはint型の数値が入り、いくつ配列として受け取るか設定できます。

正規表現は以下にまとめています。

split() サンプルコード

姓名で区切る

String str = "中本 太郎";
String [] starray = str.split(" ");
for(String str2 : starray){
    System.out.println(str2);
}

実行結果

中本
太郎

正規表現 カンマ+スペース で区切る

String str = "田中, 中本, 佐藤, 鈴木";
String [] starray = str.split("¥¥,¥¥s");
for(String str2 : starray){
    System.out.println(str2);
}

実行結果

田中
中本
佐藤
鈴木

おしゃれに書きましたが引数を「", "」としても同じ結果がえられます。

制限を使う 回数を指定する

String str = "1,2,3,4";
String [] starray = str.split(",",2);
for(String str2 : starray){
    System.out.println(str2);
}

実行結果

1
2,3,4

2つに分けると、初めのカンマで区切ったあとは全て2つ目の配列に集約されました。

制限を使う 0

String str = "1,2,,,5,6,,";
String [] starray = str.split(",",0);
for(String str2 : starray){
    System.out.println(str2);
}

実行結果

1
2

5
6

間の空白は配列になりますが、6以降の空白は配列には含まれていません。

制限を使う マイナス

String str = "1,2,,,5,6,,";
String [] starray = str.split(",",-1);
for(String str2 : starray){
    System.out.println(str2);
}

実行結果

1
2


5
6

マイナスの場合全て配列になります。

おわり

正規表現は何回か使ってもすぐには出てこないですね。いつになったら慣れるのか。

Javascriptでsplit()メソッドを使ったことがあったのにすっかり忘れていてショックでした。

Java

Posted by Nakamoto