Rubyの文字列

2020-09-04 hit count image

Rubyで文字列を使う方法について説明します。

概要

このブログではRubyで文字列を使うによって役に立てる方法について紹介します。

文字列検索

Rubyで文字列を検索するときはindexメソッドを使います。

puts "ABCD".index("C")
# 2

検索した文字列が当該文字列に存在する場合、当該文字列の位置をかえします。存在しない場合nilをかえします。

文字列の変換

文字列の各文字をindexで参照することができるし変換することができます。

a = "Apple Juice"
a[0] = "O"
a[1] = "r"
a[2] = "a"
a[3] = "n"
a[4] = "ge"
puts a
# Orange Juice

上の例でもわかると思いますが、a[4] = "ge"なように文字列の長さが違っても文字列を変換することができます。

正規表現

他の言語と同じようにRubyでも正規表現式を使って文字列を検索することができます。

メター文字

正規表現にはメター文字(特殊な意味を持ってる文字)を使って正規表現式を作ります。

メター文字説明
[][]中にある文字中で1文字
.任意の1文字
*直前の表現を0回以上反復
+直前の表現を1回以上反復
?直前の表現を0回または1回反復
()正規表現のグループ
a|ba, b中で1つ
\s空白文字
\w英数字やアンダーバー(_)
\d数字(0~9)
^一番前
$一番後ろ

パターンマッチング

正規表現式を使って文字列を検索することができます。

puts /R.by/ =~ "Let's study Ruby!"
# 12

文字列検索関数であるindexと同じようにパターンが一致すると、一致したパターンのindexをかえして、パターンがマッチングしてない場合、nilをかえします。

Regexpクラス

正規表現をRegexpクラスのnewメソッドを使って正規表現オブジェクトを生成することができます。

re = Regexp.new("R.by")
puts re =~ "Let's study Ruby!"
# 12

正規表現オブジェクト

正規表現オブジェクトを使うと正規表現式をもっと効果的使うことができます。

  • 正規表現オブジェクトのx: xを使って正規表現式中に#を使ったコメントを追加することができます。

      re =/R.by # Search Ruby/x
      puts re =~ "Let's study Ruby!"
      # 12
    
  • 正規表現オブジェクトのi: iを使って大小文字と関係なく文字列を探すことができます。

      re =/r.by/i
      puts re =~ "Let's study Ruby!"
      # 12
    

シンボル

シンボル(symbol)は任意の文字列と1対1で対応する値を表すクラスです。

a = :apple
b = :apple
c = :orange

puts a == b # true
puts a == c # false

aとbは同じ名前のシンボルなので同じオブジェクトを表してます。

シンボルと文字列

シンボルオブジェクトへto_sを使うと文字列に変換することができます。文字列へinternを使うとシンボルへ変換することができます。

a = :apple
b = "apple"

puts a # apple
puts b # apple
puts a == b # false
puts a.to_s == b # true
puts a == b.intern # true

シンボルの活用

シンボルは数値と同じものなので文字列を使うよりメモリや実行スピードの面で効率的な場合があります。 심벌은 수치와 똑같은 것이므로 문자열을 사용하는 것보다 메모리나 실행 속도면에서 효율적인 경우가 많습니다.

def triangle(value)
  value[:a] + value[:b] + value[:c]
end

test = {:a => 5, :b => 2, :c => 5}
puts triangle(test)
# 12

シンボルは普通ハッシューのキーで使います。

パーセント技法

文字列は普通ダブルクォーテーションやシングルクォーテーションを使って表示しますた、%でも表示することができます。

puts %{This string has " character}
# This string has " character
puts %Q{This string has " character}
# This string has " character
puts %q{This string has ' character}
# This string has ' character

また、%wを使ってスペースで区分された文字列を配列で変換することもできます。

puts %w(apple orange banana)
# apple
# orange
# banana

完了

これでRubyで文字列を使う方法について説明しました。正規表現は他の言語でもたくさん使ってるので、よく覚えとくと色んなところで活用できると思います。

私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!

Posts