注目の書籍

好評発売中!

iOS/Android/Windowsプログラミング

1冊で3大スマホOSの
基礎とプログラミング テクニックがわかる!
サンプルアプリも用意

ソフト開発

Rubyをめぐる冒険

日経ソフトウエア

入門編 第5回 文字列操作を覚えながらデートで使った金額を求めるプログラムを作成する

2010/06/24
kikaineko
出典:日経ソフトウエア 2008年11月号  pp.100-107
(記事は執筆時の情報に基づいており、現在では異なる場合があります)

 けだるい夏の早朝,突然携帯電話が鳴った。午前6時に電話をかけてくる人は,ある程度限られている。いくら休日とはいえ,朝の6時に用事がある人なんてあまりいない(ちなみに僕は休みの日でも早起きしている)。嫌な予感とともに携帯電話を見ると,やはり大学以来の友人Kだった。

 電話に出て最初の言葉が「やぁ!」でも「おはよう!」でもなく「ところで…」だった。つい電話を切りたくなる。朝の6時にコール音3回までに電話に出たのだ。それくらいは許されるだろう。しかし切ったとしても,また電話をかけてくるだろうから,僕はそのまま会話を続けることにした。

 友人Kの電話内容は予想通りだった。また何かしらのツールを作れという。どうやら今回は「デートで使った金額を計算するツール」が欲しいらしい。やれやれ,どんな事情があるのかは知らないが,それが休日の早朝に急を要することなのだろうか。

 というわけで,今回は友人Kのためにツールを作りながら,Rubyにおいて頻繁に利用する文字列操作を押さえておこう。

 文字列操作においては,非常に強力な武器となる正規表現*1という機能がある。今回はそこまでは踏み込まずに,基本的な文字列操作をしっかり説明しよう。

よく使うメソッドを振り返る

 文字列操作でよく使用されるメソッドを表1に示す。この連載で登場したメソッドも含まれるが,順番に見ていこう。

表1●文字列操作でよく使用されるメソッド
表1●文字列操作でよく使用されるメソッド

gsub(pattern , replace)

 gsubは,文字列置換のためのメソッドだ。リスト1のように使用する。

s = "queen"
puts s.gsub("q", "k") #-> kueen
リスト1●文字列を置換するgsubメソッドの例
図1●gsubメソッドを使って文字列を置き換えた実行結果の画面
図1●gsubメソッドを使って文字列を置き換えた実行結果の画面

 gsubは基本的に二つの引数を取る。第1引数で置き換えたい文字列を指定し,第2引数で変換後の文字列を指定する。今までの連載やリスト1のサンプル・プログラムでもそうだが,第1引数に文字列を指定している。ここに正規表現を指定することもできる。実行結果が図1だ。「q」という文字が「k」に変更されている。

include?(substr)

図2●文字列の中に指定した文字列が存在するか尋ねた実行結果の画面
図2●文字列の中に指定した文字列が存在するか尋ねた実行結果の画面

 次にinclude?メソッドを見てみよう。これも以前に登場した。文字列の中に,指定した文字列が存在するかどうかを尋ねるメソッドだ。リスト2のように記述する。文字列が存在するときは「true」を返し,存在しないときは「false」を返す。実行結果は図2の通りだ。

s = "queen"
puts s.include?("ee") #-> true
puts s.include?("aa") #-> false
リスト2●文字列の中に指定した文字列があるか尋ねるinclude?メソッド
>>size
次ページ以降はITpro会員(無料)の方のみお読みいただけます。
会員の方は、 ログインしてご覧ください。
まだ会員でない方は、ぜひ登録(無料)していただき、ITproの豊富なコンテンツをご覧ください。

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介