私は Chris Pine の Learn to Program を使用していますが、ランダムな単語のリストの形式でユーザー入力を取得し、それらを配列にアルファベット順に並べるという比較的単純な課題に困惑しています。このチャレンジに関する質問は以前にもありましたが、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 では文字列を配列に変換できないなど、複数の理由で機能しません。