我正在使用 Chris Pine 的《学习编程》,但我被他相对简单的挑战难倒了,即以随机单词列表的形式获取用户输入,然后将它们按字母顺序排列在数组中。关于这个挑战的问题之前已经出现过,但我无法在 SO 上找到我的具体问题,所以如果它是重复的,我很抱歉。
puts "Here's a fun trick. Type as many words as you want (one per line) and
I'll sort them in...ALPHABETICAL ORDER! Hold on to your hats!"
wordlist = Array.new
while (userInput = gets.chomp) != ''
wordlist.push(userInput)
end
puts wordlist.sort
虽然这可以解决问题,但我正在尝试弄清楚如何在不区分大小写的情况下按字母顺序排列数组。这很难缠绕我的头。
我了解了 casecmp
,但这似乎是一种比较特定字符串的方法,而不是字符串数组。
到目前为止,我一直在尝试这样的事情:
wordlist.to_s.downcase.to_a.sort!
除了看起来很糟糕之外,它还因为多种原因不起作用,包括 Ruby 2.0 不允许将字符串转换为数组。
最佳答案
怎么样:
wordlist.sort_by { |word| word.downcase }
或者更短:
wordlist.sort_by(&:downcase)
关于ruby - 如何忽略大小写按字母顺序排列数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17799871/