どうも、ウェブ系ウシジマくんです。
今日はrubyの”include?”メソッドを使って、簡単なプログラムを作ってみたいと思います。
内容はRubyを学習して半年以内のビギナー向け。
ProgateやCODEPREPなどで学習したことを最速で身につけるためには、プログラムやアプリを作ってアウトプットするのが一番早いですからね。
これ読んでもすぐに一流のRubyエンジニアにはなれないけど、include?メソッドについての知識を深めることはできます。それではどうぞ。
そもそもinclude?メソッドってなに?
include?メソッドは、文字列の中に引数other_strの文字列が含まれるかどうかを調べます。含まれるときはtrue、含まれないときはfalseを返します。
-Rubyリファレンスより-
引用文の説明ですぐに理解できましたか?もっとわかりやすく言い換ええると、
変数に.include?
メソッドを使えば()
の中に指定した引数があるかどうかをTrueかFlaseで返すってことです。
ここでは、str
が変数で、.include?
がメソット部分。(other_str)
が検索したい文字列になります。
include?
メソッドはただ単純に文字列があるかどうかが返り値になる点が、indexメソッド
やrindexメソッド
と違いまs。(index?/rindex?は返り値がインデックスです。)
includeは配列やハッシュでも使用できる
include?メソッドは配列やハッシュでも使用可能です。使い方も先ほどとまったく同じ。
配列の場合
trueが返り値になっている理由は、fruits配列に”りんご”という値が含まれているためです。
逆にfalseが返り値なのは、”メロン”という値はfruit配列に含まれていないからになりますね。
ハッシュの場合
ハッシュの場合、引数に指定したオブジェクトがキーに存在しているかどうかがポイントになります。
例の場合、返り値がtrueになっているのはfruitsハッシュに”春の果物”というオブジェクトが存在してるためです。
逆に返り値がfalseなのは、”秋の果物”というキーがfruitsハッシュに存在していないからですね。
include?メソッドがわかったところでプログラムを作ろう
ここまでの説明でなんとなくinclude?メソッドについて理解できたと思います。
それでは、include?メソッドを応用して、1回目に入力された値が2回目に入力する文章に含まれているかどうかを判別するプログラムを作りましょう。
まずは作成したプログラムを見てください。
最初にgetsメソッドを使って、データを1行読み込ませています。
getsメソッドの後にchompメソッドを使っているのは、入力された文字列の末尾に自動生成される改行文字を削除しているためですね。
if文とinclude?メソッドを組み合わせて、次のように条件分岐させましょう。
- include?メソッドがtrueの場合 =>「この文章にはキーワードが含まれています」
- include?メソッドがfalseの場合 =>「この文章にはキーワードが含まれていません」
これで、include?メソッドを使った、キーワードチェックプログラムができました!
最後に
こうやって自分でプログラミングができるようになると、学習するのがもっと楽しくなりますよね。
学んだことは何かしらのアウトプットを繰り返してどんどんレベルアップしていきましょう!