简体   繁体   English

在Ruby中同时替换多个字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM