[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
| 固定リンク
この記事へのコメントは終了しました。
コメント