Articles

Ordine lessicografico

Posted on

Il tuo browser non supporta l’HTML 5 Canvas. Prova Chrome.

Per mettere in ordine gli elementi, ci deve essere un modo per confrontare due elementi. Con le stringhe, l’ordine usuale è l’ordine lessicografico. Questo è l’ordine del dizionario, eccetto che tutte le lettere maiuscole precedono tutte le lettere minuscole. Questo ordine è quello che il metodo compareTo() della classe String usa.

Due stringhe sono lessicograficamente uguali se hanno la stessa lunghezza e contengono gli stessi caratteri nelle stesse posizioni. In questo caso, stringA.compareTo( stringB ) restituisce 0.

Altrimenti, stringA.compareTo( stringB ) restituisce un valore negativo se StringA viene prima e un valore positivo se StringB viene prima.

Aiuto alla memoria: pensate alle stringhe di un dizionario come disposte dal più piccolo al più grande. Quindi stringA - stringB produrrebbe un valore negativo se stringA venisse prima di StringB.

Per determinare quale stringa viene prima, confrontate i caratteri corrispondenti delle due stringhe da sinistra a destra. Il primo carattere in cui le due stringhe differiscono determina quale stringa viene prima. I caratteri sono confrontati usando il set di caratteri Unicode. Tutte le lettere maiuscole vengono prima delle lettere minuscole. Se due lettere hanno lo stesso caso, allora viene usato l’ordine alfabetico per confrontarle.

Se due stringhe contengono gli stessi caratteri nelle stesse posizioni, allora la stringa più corta viene prima.


Relazione stringA.compareTo( stringB )
stringaA Meno di stringaB Intero negativo
stringaA Uguale stringaB Zero
stringaA Maggiore Maggiore di stringaB Intero Positivo


Espressione Valuta a Spiegazione
“Zebra”.compareTo(“formica”) Intero negativo il caso superiore ‘Z’ viene prima del caso inferiore ‘a’
“Mela”.compareTo(“mela”) Intero negativo il caso superiore ‘A’ viene prima del caso inferiore ‘a’
“mela”.compareTo(“arancia”) Intero negativo La ‘a’ viene prima della ‘o’
“acero”.compareTo(“mattina”) Intero negativo La ‘a’ viene prima della ‘o’
“mela”.compareTo(“mela”) Zero stessa lunghezza, stessi caratteri nelle stesse posizioni
“arancia”.compareTo(“mela”) Intero positivo ‘o’ viene dopo ‘a’
“applecart”.compareTo(“mela”) Intero positivo la stringa più lunga “applecart” viene dopo “mela”
“albatross”.compareTo(“albany”) Intero Positivo ‘t’ viene dopo ‘n’


Questo è leggermente confuso. Notate che stringA.compareTo( stringB ) restituisce un intero negativo quando stringA e stringB sono nell’ordine corretto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *