在过去的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
是一个数组,数组的元素是通过整数索引访问的,但是您尝试使用字符串word
。words = text.split
,所以words
保存字符串数组。