Рубиновый перевод строки - PullRequest
2 голосов
/ 02 мая 2009

Я хочу найти преемника каждого элемента в моей закодированной строке. Например, K-> M A-> C и т. Д.

string.each_char do |ch| 
    dummy_string<< ch.succ.succ
end

Однако этот метод переводит y-> aa.

Есть ли в Ruby метод, похожий на maketrans () в Python?

Ответы [ 3 ]

8 голосов
/ 02 мая 2009

Вы, похоже, ищете String # tr . Используйте как это: some_string.tr('a-zA-Z', 'c-zabC-ZAB')

1 голос
/ 02 мая 2009
def successor(s)
    s.tr('a-zA-Z','c-zabC-ZAB')
end

successor("Chris Doggett") #"Ejtku Fqiigvv"
0 голосов
/ 02 мая 2009

Я не знаю ни одного лишнего, но думаю, что путь Ruby, вероятно, будет включать передачу блока в функцию регулярного выражения. Вот тупой, который работает только для заглавных букв:

"ABCYZ".gsub(/\w/) { |a| a=="Z" ? "A" : a.succ }
=> "BCDZA"

Редактировать: ну, неважно, слушай Песто, он звучит умно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...