Чтобы получить индекс символа по алфавиту, вы можете использовать метод массива index , например:
alphabet_Count = ("a".."z").to_a
alphabet_Count.index(anychar.downcase)
Обратите внимание, что если вы используете метод index
, буква 'a'
будет проиндексирована как 0
, поэтому вам придется добавить смещение значения 1
. Кроме того, в вашем цикле действительно есть синтаксическая ошибка. Попробуйте это:
name.each_char do |chr|
puts alphabet_Count.index(chr.downcase)
end
или это:
name.split('').each do |chr|
puts alphabet_Count.index(chr.downcase)
end
В ruby, если вы выполняете итерацию, используя что-то вроде:
list.each do
any_code_block
end
Это означает, что any_code_block
будет выполнен один раз для каждого элемента в name
. Поскольку в вашем случае вам нужно будет использовать element
на каждой итерации, вам нужно указать имя переменной для получения значения element
. Вы делаете это, используя |variable_receiving_element_value|
.