このフォーマットの任意の文字列をa = "a=2, b=3, c=4, d=5"
のシンボル(キー)と整数(値)のハッシュに変換したいと思います。Rubyで文字列をハッシュ記号と整数に変換する
この場合、予想入力は{:a=>2, :b=>3, :c=>4, :d=>5}
です。
これは私が持っているものです。
def hash_it(str)
str.split(", ").map{|s| s.split("=")}.to_h
end
hash_it(str)
戻り{"a"=>"2", "b"=>"3", "c"=>"4", "d"=>"5"}
。閉じるが、それほどではない。私は、キーをシンボルと値に整数に変換する方法がわかりません。私はそれらを別々に変換することができます:
str.split(", ").map{|s| s.split("=")}.map{|n| n[0].to_sym}
#=> [:a, :b, :c, :d]
str.split(", ").map{|s| s.split("=")}.map{|n| n[1].to_i}
#=> [2, 3, 4, 5]
しかし私は意図した目的のために一緒に置くことはできません。
"a=2, b=3, c=4, d=5"
の形式の任意の文字列をシンボル間キー値のハッシュに変換するにはどうすればよいですか?{:a=>2, :b=>3, :c=>4, :d=>5}
?
それは 'A'があなたの配列、' evalの「{#{a.gsub(/ \ W + /、 ':\ 1')であれば、ことは注目におそらく価値があります}} "#=> {:a => 2、:b => 3、:c => 4、:d => 5}' –