Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.7k views
in Technique[技术] by (71.8m points)

ruby - How do I count vowels?

I've seen the solution and it more or less matches

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}")
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
def count_vowels(str)
  str.scan(/[aeoui]/).count
end

/[aeoui]/ is a regular expression that basically means "Any of these characters: a, e, o, u, i". The String#scan method returns all matches of a regular expression in the string.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...