志茂吉建氏のRubyコラム『文字列』
Rails技術者認定試験運営委員会の吉政でございます。
私が企画したコラムの件です。Rails技術者認定試験運営委員会のオーナーでもあるヒューマンリソシアが志茂吉建氏のRubyコラム『文字列』を公開しています。
Rubyの書き方から始まり、条件分について前回ご紹介したこのコラムですが、今回は文字列の解説です。これから始める方で興味のある方はご参考ください。
###
Rubyの文字列
今回は、Rubyの文字列表現について見ていきたいと思います。Rubyの文字列は、String型のオブジェクトとなります。文字列自身が String型のオブジェクトとなりますので、すべてのメソッドを利用することが可能です。リスト1の表現はすべて有効です。どんなオブジェクトになる意 識しているので、String型のメソッドを使えると言うことになります。
リスト1
irb(main):001:0> “あいうえお”.size
=> 5
irb(main):002:0> “あいうえお”.reverse
=> “おえういあ”
irb(main):003:0>
次に文字列のリテラル表現について見ていきます。ダブルクオートで囲んだ文字列と、シングルクオートをよく見かけるのではないかと思います。では、 ダブルクオートとシングルクオートの違いは何でしょうか。ダブルクオートの場合は、エスケープシーケンス(\tとか\nなど)がすべて有効となります。一 方、シングルクオートの場合は、エスケープシーケンスがほぼ無効となります。リスト2では006が\tが解釈されてタブが出力されていますが、007はそ のまま\tが出力されています。
リスト2
あいうえお
=> nil
irb(main):007:0> puts ‘\tあいうえお’
\tあいうえお
=> nil
もうひとつ覚えておいて便利な文字列のリテラル表現をご紹介しておきます。%qと%Qです。%qで始まる場合はシングルクオート、%Qで始まる場合はダブルクオートと同じになります。ただし、デリミタ(括弧などの区切り文字列)が変更できるのでいろいろな表現が可能です。
リスト3
=> nil
irb(main):015:0> puts %q(あいうえお)
あいうえお
=> nil
irb(main):016:0> puts %q[あいうえお]
あいうえお
=> nil
irb(main):017:0> puts %Q<\tあいうえお>
あいうえお
=> nil
(この続きは以下のコラム本文をご覧ください)
http://resocia.jp/column/329/