3

在 Ruby 中,我需要像这样转换一个字符串:

"keyA,valueA,keyB,valueB"

变成这样的哈希:

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

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

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

4

2 回答 2

12
s = 'keyA,valueA,keyB,valueB'

Hash[*s.split(',')]
#=> { 'keyA' => 'valueA', 'keyB' => 'valueB' }
于 2012-08-22T21:34:22.007 回答
1

试试这个:

s = "keyA,valueA,keyB,valueB"
Hash[*s.split(",").each_slice(2).collect{ |k,v| [k,v] }.flatten]
于 2012-08-22T21:02:21.540 回答