【发布时间】:2010-10-23 05:24:18
【问题描述】:
我想在我的编码字符串中找到每个元素的后继。例如 K->M A->C 等。
string.each_char do |ch|
dummy_string<< ch.succ.succ
end
但是,此方法转换为 y->aa。
Ruby 中有没有类似于 Python 中的 maketrans() 的方法?
【问题讨论】:
我想在我的编码字符串中找到每个元素的后继。例如 K->M A->C 等。
string.each_char do |ch|
dummy_string<< ch.succ.succ
end
但是,此方法转换为 y->aa。
Ruby 中有没有类似于 Python 中的 maketrans() 的方法?
【问题讨论】:
您似乎在寻找String#tr。像这样使用:some_string.tr('a-zA-Z', 'c-zabC-ZAB')
【讨论】:
我不知道有什么副手,但我认为 Ruby 方式可能涉及将块传递给正则表达式函数。这是一个只适用于大写字母的笨蛋:
"ABCYZ".gsub(/\w/) { |a| a=="Z" ? "A" : a.succ }
=> "BCDZA"
编辑:嗯,没关系,听 Pesto,他听起来很聪明。
【讨论】:
def successor(s)
s.tr('a-zA-Z','c-zabC-ZAB')
end
successor("Chris Doggett") #"Ejtku Fqiigvv"
【讨论】: