2012-06-20 70 views
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中做到這一點?

回答

7

你會使用String#tr做替代,並且Array#join把你的數組轉換爲字符串,這是什麼String#tr預計作爲參數。

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

rubyFiddle

+0

嗨@alex!他認爲這很好。但在這種情況下,「text =」[A]和[B]「','original = [」[A]「,」[B]「,」[C]「,」[D]「, ]「]',''replacements = [」[B]「,」[C]「,」[D]「,」[E]「,」[Bb]「]'如何將' 「[B]和[C]」' –

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 
相關問題