我怎么算元音?

Wm.*_*ite 1 ruby string

我已经看到了解决方案,它或多或少匹配

Write a method that takes a string and returns the number of vowels
 in the string. You may assume that all the letters are lower cased. You can treat "y" as a consonant.
Difficulty: easy.

def count_vowels(string)
    vowel = 0
    i = 0
    while i < string.length  
        if (string[i]=="a" || string[i]=="e" || string[i]=="i" || string[i]=="o"|| string[i]=="u")
            vowel +=1
end

    i +=1

return vowel

end

puts("count_vowels(\"abcd\") == 1: #{count_vowels("abcd") == 1}")
puts("count_vowels(\"color\") == 2: #{count_vowels("color") == 2}")
puts("count_vowels(\"colour\") == 3: #{count_vowels("colour") == 3}")
puts("count_vowels(\"cecilia\") == 4: #{count_vowels("cecilia") == 4}")
Run Code Online (Sandbox Code Playgroud)

Aug*_*ust 10

def count_vowels(str)
  str.scan(/[aeoui]/).count
end
Run Code Online (Sandbox Code Playgroud)

/[aeoui]/是一个正则表达式,基本上意味着"任何这些字符:a,e,o,u,i".该String#scan方法返回字符串中正则表达式的所有匹配项.


ste*_*lag 5

def count_vowels(str)
  str.count("aeoui")
end
Run Code Online (Sandbox Code Playgroud)