文字列の一部を取り出す
文字を大文字・小文字に変換するの時に調べて使ってた。
Groovyに範囲という概念があって、範囲内の各要素に対して処理をするための
範囲演算子(..)なるものがある。
(参考 Groovyイン・アクション p81)
アスキー文字
- インデックス3から3
- インデックス3から5
- インデックス3から6の直前
groovy:000> "adbcdefghi"[3..3] ===> c groovy:000> "adbcdefghi"[3..5] ===> cde groovy:000> "adbcdefghi"[3..<6] ===> cde
マルチバイト文字
マルチバイト文字列でもOK
- 0から2
- 2から4
- 2から5
"人がたくさんいる"[0..2] "人がたくさんいる"[2..4] "人がたくさんいる"[2..5] groovy:000> load 041_文字列の一部を取り出す.groovy ===> 人がた ===> たくさ ===> たくさん
実行環境
- OS:Windows XP
- Groovy Version: 1.6.5
- JVM: 1.6.0_12
Groovyの詳細についてはJavadocと以下の書籍を参考にしている。
Groovyイン・アクション
posted with amazlet at 10.05.16
問題自体は以下の書籍のもの。Rubyと似てる部分も多いので、ヒントにもなる。
写経でもいいが自分で考えるために他言語の例をGroovyで置き換えてる。
Rubyレシピブック 第2版 268の技
posted with amazlet at 10.05.16
Groovyイン・アクションを読むならあった方が便利かな。