Groovyで特定文字(空白類文字)を含む部分の長さを調べる

空白類文字を数える。
空白類文字とは空白、改行などのこと。
正規表現の\sで表せるので、\sにマッチするものを数えることにする。



ソース
def matching_length(str, regexp){
    result = 0
    m = (regexp).matcher(str)
    m.find()
    m.each{ chunk ->
        result += chunk.size()
    }
    return result
}

/* 空白文字は何文字はいっているか? */
println matching_length("abc d eee ff\n", ~/\s/)
println matching_length("abc d eee ff", ~/\s/)
println matching_length("", ~/\s/)
/* 空白12個*/
println matching_length("            \n", ~/\s/)
println matching_length("            ", ~/\s/)

/* 「も」は何文字はいっているか? */
println matching_length("すももももももももものうち", ~/も+/)
補足

Rubyのsplit(//)は、1文字に分割する処理なので、
each()メソッドで1文字ずつ分割した。

実行結果
===> true
===> true
4
===> null
3
===> null
0
===> null
===> true
13
===> null
12
===> null
===> true
9
===> null

実行環境




最近のキーワード









Groovyの詳細についてはJavadocと以下の書籍を参考にしている。
ページ番号は、この書籍のページ番号

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


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

Rubyレシピブック 第2版 268の技
青木 峰郎 後藤 裕蔵 高橋 征義
ソフトバンク クリエイティブ
売り上げランキング: 80467


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

ブックストッパー

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


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