我有两个字符串:
str1 = "k1,k2,k3,k4";
str2 = "v1,v2,v3,v4";
在Ruby中,分割每个内容的最佳方法是什么,并形成如下的散列图:
k1 => v1;
k2 => v2;
k3 => v3;
k4 => v4;
答案 0 :(得分:4)
假设两个数组具有相同数量的元素,您可以使用zip
和Hash[]
的组合:
str1 = "k1,k2,k3,k4"
str2 = "v1,v2,v3,v4"
Hash[str1.split(',').zip(str2.split(','))]
# => {"k1"=>"v1", "k2"=>"v2", "k3"=>"v3", "k4"=>"v4"}
请注意;
仅用于在一行中组合多个语句,否则不应使用。
如果您想要格式化它:
hash = Hash[str1.split(',').zip(str2.split(','))]
hash.each do |key, value|
puts '%s => %s;' % [ key, value ]
end