将逗号分隔的字符串转换为ruby中的哈希值

时间:2012-08-22 20:55:45

标签: ruby

在Ruby中,我需要转换这样的字符串:

"keyA,valueA,keyB,valueB"

成这样的哈希:

{"keyA"=>"valueA", "keyB"=>"valueB"}

我很确定这会涉及each_slice方法以及可能的inject(),如“ruby string to hash conversion”中所述。

但我不知道如何将这些组件组合在一起。

2 个答案:

答案 0 :(得分:12)

s = 'keyA,valueA,keyB,valueB'

Hash[*s.split(',')]
#=> { 'keyA' => 'valueA', 'keyB' => 'valueB' }

答案 1 :(得分:1)

试试这个:

s = "keyA,valueA,keyB,valueB"
Hash[*s.split(",").each_slice(2).collect{ |k,v| [k,v] }.flatten]