【问题标题】:Replace characters in a string using two arrays使用两个数组替换字符串中的字符
【发布时间】:2012-06-20 13:15:07
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby text replace


    【解决方案1】:

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

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

    rubyFiddle.

    【讨论】:

    • 嗨@alex!我认为他的情况很好。但是在这种情况下:text = "[A] and [B]"original = ["[A]", "[B]", "[C]", "[D]", "[Aa]"]replacements = ["[B]", "[C]", "[D]", "[E]", "[Bb]"] 你怎么能把text 替换成"[B] and [C]"
    【解决方案2】:

    【讨论】:

      【解决方案3】:
      original = ["/", ".", ",", "|"]
      replacements = ["_", "_", "_", "__"]
      
      i = 0
      original.each do |char|
        text.scan(char).size.times do
          text.sub!(char, replacements[i])
        end
        i = i+1
      end
      

      【讨论】:

        猜你喜欢
        • 2012-04-18
        • 1970-01-01
        • 2012-02-18
        • 1970-01-01
        • 2014-03-21
        • 1970-01-01
        • 2010-09-28
        • 2012-04-26
        • 2011-08-15
        相关资源
        最近更新 更多