2012-02-27 2 views
-1

私はtxtファイルからハッシュを初期化しました。私が間違っていない場合、キーは現在文字列です。どうすれば整数にすることができますか?どんな助けでも大歓迎です。ルビのハッシュキーを整数に変換する

コード:

products_file = File.open("files.txt") 
products = {} 
while !products_file.eof? 
    x, *products[x] = products_file.gets.chomp.split(",") 
    a = products[x] 
    a[0].strip! 
    a[1] = a[1].strip.to_f 
end 
puts products 

ファイル:

199, Shoes, 59.99 
211, Shirts, 19.99 
245, Hats, 25.99 
689, Coats, 99.99 
712, Beanies, 6.99 

私の結果は次のとおりです。

{"199"=>["Shoes", 59.99], "211"=>["Shirts", 19.99], "245"=>["Hats", 25.99], "689"=>["Coats", 99.99], "712"=>["Beanies", 6.99]} 

答えて

1

あなたは整数キーを使用して新しいハッシュを構築するためにinjectを使用することができます。

hash = {"199"=>["Shoes", 59.99], "211"=>["Shirts", 19.99]} 

p hash.inject({}) { |memo, item| memo[Integer(item[0])] = item[1]; memo } 
    # => {199=>["Shoes", 59.99], 211=>["Shirts", 19.99]} 
+0

んだろうか? –

+0

私は実際に注射を理解していません –

+0

私はそれを学ぶ必要があります –

2

私は注入使っ以外の別の方法がありますHash[ hash.keys.map(&:to_i).zip(hash.values) ]

関連する問題