Sto usando Learns Program di Chris Pine e sono perplesso sulla sua relativamente semplice sfida di prendere input dell'utente sotto forma di un elenco di parole casuali e quindi di alfabetizzarle in un array. Domande su questa sfida sono emerse prima, ma non sono stato in grado di trovare la mia domanda specifica su SO, quindi mi dispiace se è un duplicato.Come si alfabetizza un array ignorando il caso?
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
Anche se questo fa il trucco, sto cercando di capire come alfabetizzare la matrice senza maiuscole e minuscole. Questo è difficile da comprendere. Ho imparato a conoscere casecmp
ma sembra essere un metodo per confrontare una stringa specifica, al contrario di una serie di stringhe.
Finora ho cercato le cose come:
wordlist.to_s.downcase.to_a.sort!
che, oltre a guardare male, non funziona per diverse ragioni, tra cui quella di Ruby 2.0 non consente le stringhe da convertire in array.
Oops! Ho dimenticato di menzionare. So che posso solo scaricare l'intero array, una volta convertito in una stringa, ma mi piacerebbe restituire i valori così come sono stati immessi, per quanto riguarda il caso. – user2608684