文字列の一部を取り出す

文字を大文字・小文字に変換するの時に調べて使ってた。

Groovyに範囲という概念があって、範囲内の各要素に対して処理をするための
範囲演算子(..)なるものがある。
(参考 Groovyイン・アクション p81)

アスキー文字

  1. インデックス3から3
  2. インデックス3から5
  3. インデックス3から6の直前
    groovy:000> "adbcdefghi"[3..3]
    ===> c
    groovy:000> "adbcdefghi"[3..5]
    ===> cde
    groovy:000> "adbcdefghi"[3..<6]
    ===> cde

マルチバイト文字

マルチバイト文字列でもOK

  1. 0から2
  2. 2から4
  3. 2から5
    "人がたくさんいる"[0..2]
    "人がたくさんいる"[2..4]
    "人がたくさんいる"[2..5]
    
    groovy:000> load 041_文字列の一部を取り出す.groovy
    ===> 人がた
    ===> たくさ
    ===> たくさん

実行環境


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

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


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

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


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

ブックストッパー
ブックストッパー
posted with amazlet at 10.05.16

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


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

EDISON ほんたった黒(ハードケース入り)
株式会社エジソン
売り上げランキング: 2164