我想基于哈希转换字符串。例如,当散列包含"assistant director"
和"asst dir"
时,字符串"assistant"=>"asst"
会转换为"director"=>"dir"
。我想做点什么:
hash = Hash["executive"=>"exec","assistant"=>"asst","associate"=>"assoc","director"=>"dir"]
str = "assistant director"
hash.each { |k, v| str.gsub!(k, v) }
# => "asst dir"
基于this post,
hash.each { |k, v| str.gsub!(k, v) }
应该是答案。但它不会返回转换后的字符串。 str
也没有改变。
答案 0 :(得分:4)
答案 1 :(得分:2)
hash.each { |k, v| str.gsub!(k, v) }
将返回hash.to_a
,但与您使用gsub!
无关,这意味着您的str
已更改。只需:
hash.each { |k, v| str.gsub!(k, v) }
str #=> "asst dir"