Groovyで文字列をn文字に分割する
文字列を任意の文字数に分割する
今回は、4文字ごとに分割する
コード
println "123456789".findAll(/(?m).{1,4}/) println "あい\nうえおかきくけ".findAll(/.{1,4}/) println "あい\nうえおかきくけ".findAll(/(?m).{1,4}/) def split_nchars(str, n){ return str.findAll(/(?m).{1,${n}}/) } println split_nchars("あいうえおかきくけ", 4) println split_nchars("あいうえおか", 4) println split_nchars("あいう", 4)
実行結果
[1234, 5678, 9] [あい, うえおか, きくけ] [あい, うえおか, きくけ] [あいうえ, おかきく, け] [あいうえ, おか] [あいう]
添削歓迎
ここ間違ってるよ
こうした方がGroovyらしくないか?
などなど
方法は、コメント、トラックバック、はてブ、Twitter @orange_clover宛 で、お願いしまます。
実行環境
- OS:Windows XP
- Groovy Version: 1.8.0
- JVM: 1.6.0_26
『プログラミングGroovy 』に向けて、環境を1.8.0にした
過去の記事と比較するために、できるだけ同じ組み合わせ(Groovy:1.6.5,JVM:1.6.0_12)でやってたけど
最新で動かなきゃ意味ないからね。
Groovyの詳細についてはJavadocと以下の書籍を参考にしている。
Dierk Konig、Andrew Glover、Paul King、、Guillaume Laforge、Jon Skeet、杉浦 孝、櫻井 正樹、須江 信洋、関谷 和愛、佐野 徹郎、寺沢 尚史
Amazonでご確認ください。
問題自体は第2版のもの。rubyと似てる部分も多いので、ヒントにもなる。
写経でもいいが自分で考えるために他言語の例をGroovyで置き換えてる。
Groovyイン・アクションを読むならあった方が便利かな。