В Ruby String#split
по умолчанию разбивает строку на слова в пробеле:
"test string split".split() # => ["test", "string", "split"]
Итак, ваше решение подсчитывает количество полных слов, равных гласной (такие слова, как «а» и «я» сами по себе). Ваш будет работать, если вместо этого разделить на символы, передав ''
в качестве параметра split
:
"test string split".split('') # => ["t", "e", "s", "t", " ",
"s", "t", "r", "i", "n", "g", " ", "s", "p", "l", "i", "t"]
Однако есть лучшие способы получить каждый символ в строке, например String#each_char
:
"test string split".each_char { |char| # increment counter if char is a vowel }
и далее, вы можете просто использовать String#count
для подсчета количества гласных:
"test string split".count('aeiou') # => 3