有没有更好的方法来编写下面的相同代码? 我正在寻找一个简洁的代码。
val.gsub!('A', 'Q')
val.gsub!('B', 'W')
val.gsub!('C', 'E')
val.gsub!('D', 'R')
val.gsub!('E', 'T')
val.gsub!('F', 'Y')
答案 0 :(得分:6)
使用tr
,专为您所描述的问题而设计:
> val = "ASDFGHJKL"
=> "ASDFGHJKL"
> val.tr("ABCDEF", "QWERTY")
=> "QSRYGHJKL"
不使用任何其他方法而不是您已经知道的方法,您可以构建键/值映射,然后迭代对:
{ 'A' => 'Q', 'B' => 'W', 'C' => 'E' ...}.each { |x,y| val.gsub(x, y) }