2

文字列の文字を変更するために2つの配列を使用したいと思います。最初の配列には元の文字が含まれ、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)

rubyFiddle

于 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 に答える