2017-07-02 3 views
-2
area_dictionary = { 
    "Alabama" => "205", 
    "Alaska" => "907", 
    "American Samoa" =>"684", 
    "Arizona" => "480", 
    "Arkansas" => "479", 
    "California" => "209", 
    "Colorado" => "303", 
    "Connecticut" => "203", 
    "Delaware" => "302", 
    "Florida" => "239", 
    "Georgia" => "229", 
    "Guam" => "671", 
    "Hawaii" => "808" 
} 

def get_city_name(hash,key) 
    hash.each{|k,v|puts k if v==key} 
end 
    puts"Please enter the code for which you want to find the city?" 
    code = gets.chomp 
    if area_dictionary.include?(code)#getting trouble from here 
     puts "The city for #{code}is#{get_city_name(area_dictionary,code)}" 
    end 
+1

何を試しましたか?あなたはこれを探しましたか?私はこれに関する情報がどこにあってもいいと思います。 – Carcigenicate

+0

[the docs](https://ruby-doc.org/core-2.4.1/Hash.html)を読むことをお勧めします。 – Gerry

+0

def get_city_name(ハッシュ、キー) hash.each {| k、v | v ==ならばkを入れます} end puts「都市を探したいコードを入力してください? code = gets.chomp area_dictionary.includeの場合 ? puts "#{code}の都市は#{get_city_name(area_dictionary、code)}"です。 –

答えて

2

あなたが値のキーを見つけようとしている場合は、以下を使用することができます。

area_dictionary.invert['239'] 
=> "Florida" 

あなたは、単に取得しようとしている場合次の値を使用できます。

area_dictionary['Florida'] 
=> "239" 
+1

「239」がハッシュに存在するかどうかを調べる必要があります code = gets.chomp if area_dictionary.include?(code) –

+1

また、メソッドarea_dictionary.has_value?( '239')を使用することもできます –

0

いくつか一目瞭然例

area_dictionary["Alaska"] 
=> "907" 
area_dictionary["Alaskaaaa"] 
=> nil 
area_dictionary.fetch("Alaska") 
=> "907" 
area_dictionary.fetch("Alaskaaaa") 
KeyError: key not found: "Alaskaaaa" 
    from (irb):5:in `fetch' 
    from (irb):5 
    from /usr/local/bin/irb:11:in `<main>' 
area_dictionary.fetch("Alaskaaaa", 10) 
=> 10 
area_dictionary.values_at("Alabama", "Alaska") 
=> ["205", "907"] 
関連する問題