在过去的45分钟里,我一直在做这个代码学院的练习。问答论坛提出的解决方案都没有奏效。代码如下。

puts "Type something profound please"
text = gets.chomp
words = text.split

frequencies = Hash.new 0
frequencies = frequencies.sort_by {|x,y| y}
words.each {|word| frequencies[word] += 1}
frequencies = frequencies.sort_by{|x,y| y}.reverse
puts word +" " + frequencies.to_s
frequencies.each do |word, frequencies|

end

为什么不能将字符串转换成整数?我做错什么了?

最佳答案

sort_by { |obj| block } → array是清楚的。
frequencies.sort_by {|x,y| y}给你一个数组。frequencies是数组,而不是散列。因此在words.each {|word| frequencies[word] += 1}中,frequencies[word]会引发异常,因为frequencies是一个数组,数组的元素是通过整数索引访问的,但是您尝试使用字符串wordwords = text.split,所以words保存字符串数组。

09-29 23:21