« [Ruby] Date の差分 | トップページ | [Java] stream のソート »

2015年4月10日 (金)

[Java] ドット(.)区切りの文字列の分割

Javaでドット(.)区切りの文字列を分割しようとしてはまった。

public class Split {
    public static void main(String...args) {
        String[] ary;
        String s1 = "a.b.c";
        ary = s1.split(".");
        System.out.println(ary.length);
        for(String s : ary) {
            System.out.println(s);
        }
    }
}

これをコンパイルして実行するとこうなる。

$ java Split
0

Rubyだと

s1 = "a.b.c"
ary = s1.split(".")
puts ary.size
ary.each{|s|
 puts s
}

を実行するとこうなる。

$ ruby split.rb
3
a
b
c

Java の String.split の引数は文字列ではなく正規表現として解釈される。 ドット(.)は正規表現では任意の文字を指すのでドット(.)として扱うためにはエスケープしないといけない。

public class Split {
    public static void main(String...args) {
        String[] ary;
        String s1 = "a.b.c";
        ary = s1.split("\\.");
        System.out.println(ary.length);
        for(String s : ary) {
            System.out.println(s);
        }
    }
}

これを実行すれば、

$ java Split
3
a
b
c

|

« [Ruby] Date の差分 | トップページ | [Java] stream のソート »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [Java] ドット(.)区切りの文字列の分割:

« [Ruby] Date の差分 | トップページ | [Java] stream のソート »