概要
このブログでは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|b | a, 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で文字列を使う方法について説明しました。正規表現は他の言語でもたくさん使ってるので、よく覚えとくと色んなところで活用できると思います。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。