[英]Replace multiples characters at same time in ruby
Are there a better way to wrote the same code below? 有没有更好的办法在下面编写相同的代码? I am looking for a clean and minimal code.
我正在寻找干净且最少的代码。
val.gsub!('A', 'Q')
val.gsub!('B', 'W')
val.gsub!('C', 'E')
val.gsub!('D', 'R')
val.gsub!('E', 'T')
val.gsub!('F', 'Y')
Use tr
, it's purpose-built for the problem you're describing: 使用
tr
,它专门针对您要描述的问题而构建:
> val = "ASDFGHJKL"
=> "ASDFGHJKL"
> val.tr("ABCDEF", "QWERTY")
=> "QSRYGHJKL"
Without using any other methods than the ones you already know about, you could build a key/value mapping, and then iterate over the pairs: 除了使用已知方法外,无需使用其他方法,您可以构建键/值映射,然后遍历这些对:
{ 'A' => 'Q', 'B' => 'W', 'C' => 'E' ...}.each { |x,y| val.gsub(x, y) }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.