2

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

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

有没有简单的方法在 Ruby 中做到这一点?

4

3 回答 3

7

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

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

红宝石小提琴

于 2012-06-20T13:18:55.480 回答
6

看看String#tr方法http://ruby-doc.org/core-1.9.3/String.html#method-i-tr

于 2012-06-20T13:17:14.170 回答
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
于 2014-11-13T17:31:12.207 回答