当用户在 Ruby 中输入类似单词时,如何计算“supercaliforniamightly”中出现的字母的频率,并打印出星星或星号来计算出现的字母数量?
这是我的代码:
puts "Enter string: "
text= gets.chomp
text.downcase!
words = text.split(//)
frequencies = Hash.new(0)
words.each{|item| frequencies[item] +=1}
frequencies = frequencies.sort_by{ |item, amount| amount}
frequencies.reverse!
frequencies.each do |item, amount|
puts item + " " + amount.to_s
end
我想要的输出是这样的:
Enter a string:
uuuuiiii
u , 4 ****
i , 4 ****
我稍微改变了输出(删除了逗号之前的空格),这样我就不会看起来像没有受过教育。
puts "Enter string: "
gets.chomp.downcase
.each_char.with_object(Hash.new(0)){|c, h| h[c] += 1}
.sort_by{|_, v| v}
.reverse
.each{|k, v| puts k + ", " + v.to_s + " " + "*" * v}
Output:
Enter string:
uuuuiiii
i, 4 ****
u, 4 ****
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)