Ordina Righe in Ordine Alfabetico
Incolla un elenco: si ordina in tempo reale mentre scrivi o cambi un'opzione. Nulla lascia il tuo dispositivo.
Un ordinamento che capisce davvero la lingua
Un ordinamento ingenuo confronta il testo carattere per carattere
usando i codici Unicode grezzi — per questo un semplice
.sort() di JavaScript metterebbe "Zebra" prima di
"ancora" (le lettere maiuscole hanno codici più bassi di quelle
minuscole) e spingerebbe ogni parola accentata in fondo
all'elenco. Questo strumento ordina invece con il collator
sensibile alla lingua del browser, così i confronti seguono il
vero ordine alfabetico italiano: le maiuscole vengono ignorate per
impostazione predefinita, le lettere accentate si trovano accanto
alle rispettive controparti non accentate, e le sequenze di cifre
dentro una riga vengono confrontate per valore numerico invece che
carattere per carattere — così "voce2" finisce correttamente prima
di "voce10".
Oltre ad A→Z e Z→A, puoi ordinare per lunghezza (la riga più corta per prima) — comodo per scorrere un elenco dalla voce più semplice a quella più dettagliata — oppure mescolarlo con un nuovo ordine casuale ogni volta. Se il tuo elenco ha voci ripetute invece che da ordinare, la rimozione delle righe duplicate è lo strumento giusto per quel compito.
Esempio pratico
Incolla questo elenco: Banana, àncora, Città, mela, Zebra
(una voce per riga, con capitalizzazione mista). Con le opzioni
predefinite — senza distinzione maiuscole/minuscole attiva, righe
vuote rimosse — A→Z lo ordina in àncora, Banana, Città, mela,
Zebra: 5 righe in uscita, alfabetico a prescindere dalla
capitalizzazione, con la lettera accentata "à" collocata
correttamente vicino alla "a". E per un elenco numerato come
Voce10, voce2, Voce1, A→Z restituisce correttamente
Voce1, voce2, Voce10 — non il "Voce1, Voce10, voce2"
che otterresti da un ordinamento carattere per carattere.
Domande frequenti
Come gestisce l'ordinamento le lettere accentate?
Usa il confronto sensibile alla lingua del browser (il localeCompare di JavaScript con la localizzazione italiana) invece dei semplici codici carattere. L'ordinamento per codice grezzo metterebbe ogni lettera accentata dopo la 'z', per come è numerato Unicode — sbagliato per l'ordine alfabetico italiano. L'ordinamento sensibile alla lingua colloca 'àncora' vicino ad 'ancora' e 'città' vicino a 'citta', come farebbe un dizionario.
Perché '2' viene prima di '10' invece che dopo?
Perché l'ordinamento è sensibile ai numeri: rileva le sequenze di cifre dentro una riga e le confronta per valore, non carattere per carattere. Un ordinamento testuale semplice metterebbe 'voce10' prima di 'voce2' (perché '1' < '2' come caratteri), il che quasi mai corrisponde a ciò che serve davvero in un elenco di voci numerate.
'Casuale' è davvero casuale, o ripete uno schema?
È un nuovo shuffle Fisher-Yates ogni volta che lo strumento ricalcola — a ogni tasto premuto, a ogni opzione attivata e al caricamento della pagina. Non c'è alcun seme né memoria degli shuffle precedenti, quindi risultati consecutivi sono indipendenti e raramente vedrai lo stesso ordine due volte.
Cosa cambia davvero l'opzione senza distinzione maiuscole/minuscole?
È attiva per impostazione predefinita e controlla solo il CONFRONTO, non il testo: 'Mela' e 'mela' sono trattate come uguali nel decidere l'ordine, ma ogni riga mantiene la propria capitalizzazione originale nel risultato. Disattivala se vuoi specificamente che le lettere maiuscole vengano ordinate prima di quelle minuscole (l'ordine tradizionale, sensibile alle maiuscole).