使用两个数组替换字符串中的字符

时间:2012-06-20 13:15:07

标签: ruby text replace

我想使用两个数组来更改字符串中的字符。第一个数组将包含原始字符,第二个数组将包含替换字符。

original = ["a", "b", "c"]
replacements = ["x", "y", "z"]
text = "a xx b xx c"
# New string should be "x xx y xx z"

在Ruby中有一种简单的方法吗?

3 个答案:

答案 0 :(得分:7)

您可以使用String#tr进行替换,并使用Array#join将数组转换为字符串,这是String#tr期望的参数。

new_text = text.tr(original.join, replacements.join)

rubyFiddle

答案 1 :(得分:6)

答案 2 :(得分:0)

original = ["/", ".", ",", "|"]
replacements = ["_", "_", "_", "__"]

i = 0
original.each do |char|
  text.scan(char).size.times do
    text.sub!(char, replacements[i])
  end
  i = i+1
end