Я использую Chris Pine Learn to Program, и я нахожусь в тупике относительно его относительно простой задачи взять пользовательский ввод в виде списка случайных слов, а затем упорядочить их по алфавиту в массиве. Вопросы об этой проблеме возникли раньше, но я не смог найти свой конкретный вопрос на SO, поэтому мне жаль, если это дубликат.
puts "Here 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 не позволяет преобразовывать строки в массивы.