include? メソッド
CoddyのRubyジャーニー「基礎」セクションの一部。レッスン 72/88。
配列を扱う際、処理を行う前に特定の要素が存在するかどうかを確認する必要がよくあります。Ruby の include? メソッドはこの質問に直接答え、true または false を返します。
fruits = ["apple", "banana", "orange"]
puts fruits.include?("banana") # 出力: true
puts fruits.include?("grape") # 出力: falseこのメソッドは完全一致を確認するため、文字列では大文字と小文字を区別します:
colors = ["Red", "Green", "Blue"]
puts colors.include?("Red") # 出力: true
puts colors.include?("red") # 出力: falseこのメソッドは、条件文で特に役立ちます。要素を見つけるために配列をループで調べる代わりに、その要素が含まれているかどうかを簡単に確認できます。
allowed_users = ["alice", "bob", "charlie"]
current_user = "bob"
if allowed_users.include?(current_user)
puts "Access granted"
else
puts "Access denied"
endinclude?メソッドは、数値やシンボル、さらにはほかの配列を含め、配列に格納されているあらゆるデータ型で使えます。
チャレンジ
簡単2 行の入力を読み取ります。
- 店舗で購入できる商品のリストを、カンマ区切りの文字列で指定します(例:
apple,banana,orange,milk,bread) - 買い物リストにある商品のリストを、カンマ区切りの文字列で指定します(例:
banana,eggs,milk,cheese)
買い物リストの各商品について、include? メソッドを使って店舗で購入できるか確認してください。店舗の在庫にあるかどうかに応じて、各商品の後に Available または Not available を出力してください。
include? は完全一致をチェックするため、大文字と小文字が区別されることを忘れないでください。
たとえば、入力が apple,banana,orange,milk,bread と banana,eggs,milk,cheese の場合、出力は次のようになります。
banana - Available
eggs - Not available
milk - Available
cheese - Not available入力が Red,Green,Blue と red,Green,Yellow の場合、出力は次のようになります。
red - Not available
Green - Available
Yellow - Not available入力が coffee,tea,juice と coffee,water,tea の場合、出力は次のようになります。
coffee - Available
water - Not available
tea - Available入力が pen,pencil,eraser と pen の場合、出力は次のようになります。
pen - Available自分で試してみよう
# 店舗の在庫を読み込む(カンマ区切りの商品)
store_items = gets.chomp.split(",")
# 買い物リストを読み込む(カンマ区切りの商品)
shopping_list = gets.chomp.split(",")
# TODO: 以下にコードを書く
# 買い物リストの各商品について、店舗にあるかどうかを確認する
# include? メソッドを使用して結果を出力するこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ