Я пытаюсь назначить целое число для нескольких символов в строке.Назначить целое число нескольким символам в строке
def userinput(input)
@user = input.upcase.delete('^A-Z').chars.each_slice(5).map(&:join)
end
=> userinput("This is test to convert multiple characters in a string")
=> ["THISI","STEST","TOCON", "VERTM", "ULTIP", "LECHA", "RACTE", "RSINA", "STRIN", "G"]
После того, как этот массив я хочу присвоить целое число для каждого символа в строке, так что я пытался что-то вроде этого ...
=> @user.map {|ch| ch.ord - 'A'.ord + 1}
К сожалению, я только получить соответствующее число алфавита для первой буквы.
=> [20, 19, 20, 22, 21, 12, 18, 18, 19, 7]
Я был бы весьма признателен, если кто-то может дать мне подсказку о том, как назначить другие 4 оставшиеся буквы каждой строки, а так, что выход будет что-то вроде:
=> ["ABCDE", "ABCDE"]
=> [12345, 12345]
почему этот 'ch.ord - 'A'.ord + 1' расчет? Почему 'ABCDE' составляет 12345? Исходя из того, какую логику вы выполняете для символьного целочисленного отображения? –
sry, что это может быть немного вне контекста. Идея заключалась в том, чтобы присвоить соответствующее число в алфавите букве. Вот почему ABCDE составляет 12345. – Robertinho
'12345' можно перевести как' ABCDE', 'LCDE',' AWDE'. Какой из них прав? Ответ на этот вопрос: мы не знаем. У вашей кодировки есть недостаток: это не [префикс-бесплатно] (http://en.wikipedia.org/wiki/Prefix_code). –