Groovyで正規表現で文字列を分割する

間が空いてしまったが、Groovyで文字列を単語に分けるからの続き


正規表現を使って文字列を分割する。文字列をカンマ区切り。

ソース

println "1)"
println "2003,11,21,大根,150円".split(/,/)
println "2)"
"2003,11,21,大根,150円".split(/,/).each{println it}
println "3)"
println "2003,11,21,大根,150円".split(/,/,3)
println "4)"
"2003,11,21,大根,150円".split(/,/,3).each{println it}
println "5)"
println "2003,11,21,大根,150円".split(/(,)/)
println "6)"
"2003,11,21,大根,150円".split(/(,)/).each{println it}

結果

[D:\workspace\groovy_SandBox]groovy Q048_正規表現で文字列を分割する.groovy
1)
[2003, 11, 21, 大根, 150円]
2)
2003
11
21
大根
150円
3)
[2003, 11, 21,大根,150円]
4)
2003
11
21,大根,150円
5)
[2003, 11, 21, 大根, 150円]
6)
2003
11
21
大根
150円

補足

1)2)

,で区切る
Rubyだと、["2003", "11", "21", "大根", "150円"]となるようだ。
Javaでもそうなると思うんだけど、Groovyだと違うのか?
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/String.html#split%28java.lang.String%29

3)4)

,で区切って最大3個に区切る。第2パラメータは返される配列の長さ

5)6)

Rubyだと
["2003", ",", "11", ",", "21", ",", 大根, ",", 150円]とその内容も含まれるようだが
Groovyでは含まれない。





実行環境







Groovyの詳細についてはJavadocと以下の書籍を参考にしている。

Groovyイン・アクション
Dierk Konig Andrew Glover Paul King Guillaume Laforge Jon Skeet
毎日コミュニケーションズ
売り上げランキング: 294340


問題自体は第2版のもの。rubyと似てる部分も多いので、ヒントにもなる。
写経でもいいが自分で考えるために他言語の例をGroovyで置き換えてる。




青木 峰郎、後藤 裕蔵、高橋 征義、まつもと ゆきひろ

価格: ¥ 2,940
価格は記載時点のものです。購入前にAmazonでご確認ください。




Groovyイン・アクションを読むならあった方が便利かな。

ブックストッパー

トモエ算盤
売り上げランキング: 614


Rubyレシピブックは「ほんたった」で立ててる