String.splitで正規表現によるString文字列の分割

2009/03/04 14:24Update
TAGS: Java | 文字列 | String | 分割 | split | 正規表現

Stringクラスにsplitというメソッドがあります。splitメソッドを利用して、指定する正規表現の区切り文字で文字列を分割することができます。本文はString.splitメソッドの基本的な使い方や正規表現/非正規表現でのそれぞれの区切り文字の指定方法などについて学びます。

概要


Stringクラスの文字列分割用メソッド
◇ public String[] split(String regex)
◇ public String[] split(String regex,
                      int limit)

パラメータ regex:分割する区切り文字列。正規表現となります。
パラメータ limit:正規表現パターンの適用回数。結果として得られる配列の長さを制御します。

分割後の値は文字列の配列(String[])として返されます。

※1、分割する区切り文字列は正規表現となります。
※2、正規表現ではなく、指定する文字列のままで分割したい場合、区切り文字列を "\\Q" + 区切り文字列 + "\\E"の形で指定します。

String.splitの使用例


TestStringSplit.java
public class TestStringSplit {

    /**
     * 文字列の分割
     */
    public static void main(String[] args) {
        String value = "Hello World!Java String.";
        
        System.out.println("***********スペース で分割***********");
        String []arr = value.split(" ");
        System.out.println("length:" + arr.length);
        for (String tmp:arr) {
            System.out.println(tmp);
        }
        
        System.out.println("***********.で分割***********");
        value = "Hello.World.Java.String.";
        //.は正規表現のメタ文字で、.で分割したい場合、\\. もしくは\\Q.\\Eに指定する必要があります。
        //区切り文字は複数の場合、\\Q~\\Eのほうが便利でしょう。
        arr = value.split("\\Q.\\E");   //\\. もよい
        
        System.out.println("length:" + arr.length);
        for (String tmp:arr) {
            System.out.println(tmp);
        }
        
        System.out.println("***********,で分割***********");
        value = "Hello World, Java String";
        arr = value.split(",");
        
        System.out.println("length:" + arr.length);
        for (String tmp:arr) {
            System.out.println(tmp);
        }
    }

}


実行結果:
***********スペースで分割***********
length:3
Hello
World!Java
String.
***********.で分割***********
length:4
Hello
World
Java
String
***********,で分割***********
length:2
Hello World
Java String

参考資料


Java文字列処理 - Stringクラス
java.lang.String API仕様

有关作者
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation