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)

「\n」にもマッチするように正規表現リテラルに(?m)をつけた。

実行結果

[1234, 5678, 9]
[あい, うえおか, きくけ]
[あい, うえおか, きくけ]
[あいうえ, おかきく, け]
[あいうえ, おか]
[あいう]

添削歓迎

ここ間違ってるよ
こうした方がGroovyらしくないか?
などなど
方法は、コメント、トラックバックはてブTwitter @orange_clover宛 で、お願いしまます。

実行環境

プログラミング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で置き換えてる。




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

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




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

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