Twoja przeglądarka nie obsługuje HTML 5 Canvas. Spróbuj w Chrome.
Aby uporządkować elementy, musi istnieć sposób na porównanie dwóch elementów. W przypadku ciągów znaków, zwykłym porządkiem jest porządek leksykograficzny. Jest to kolejność słownikowa, z tą różnicą, że wszystkie wielkie litery poprzedzają wszystkie małe litery. Takiej kolejności używa metoda compareTo()
klasy String
.
Dwa ciągi są równe leksykograficznie, jeśli są tej samej długości i zawierają te same znaki w tych samych pozycjach. W tym przypadku, stringA.compareTo( stringB )
zwraca 0.
W przeciwnym razie stringA.compareTo( stringB )
zwraca wartość ujemną, jeśli StringA
występuje jako pierwszy i wartość dodatnią, jeśli StringB
występuje jako pierwszy.
Pomoc dla pamięci: pomyśl o ciągach w słowniku jako ułożonych od najmniejszego do największego. Wtedy stringA - stringB
dałby wartość ujemną, gdyby stringA
pojawił się przed StringB
.
Aby określić, który ciąg przychodzi jako pierwszy, porównaj odpowiadające sobie znaki dwóch ciągów od lewej do prawej. Pierwszy znak, w którym oba łańcuchy się różnią, określa, który łańcuch jest pierwszy. Znaki są porównywane przy użyciu zestawu znaków Unicode. Wszystkie wielkie litery występują przed małymi literami. Jeżeli dwie litery są tej samej wielkości, to do ich porównania używana jest kolejność alfabetyczna.
Jeżeli dwa łańcuchy zawierają te same znaki w tych samych pozycjach, to najkrótszy łańcuch jest porównywany jako pierwszy.
Relacja | stringA.compareTo( stringB ) | ||
---|---|---|---|
stringA | Less Than | stringB | Negative Integer |
stringA | Równy | stringB | Zero |
stringA | Większy Than | stringB | Positive Integer |
Wyrażenie | Ocena | Wyjaśnienie |
---|---|---|
„Zebra”.compareTo(„ant”) | Negative Integer | upper case 'Z' comes before lower case 'a' |
„Apple”.compareTo(„apple”) | Negative Integer | upper case 'A' comes before lower case 'a' |
„apple”.compareTo(„orange”) | Negative Integer | ’a' comes before 'o' |
„maple”.compareTo(„morning”) | Negative Integer | ’a' comes before 'o' |
„apple”.compareTo(„apple”) | Zero | tej samej długości, te same znaki w tych samych pozycjach |
„orange”.compareTo(„apple”) | Positive Integer | ’o' comes after 'a' |
„applecart”.compareTo(„apple”) | Positive Integer | dłuższy ciąg „applecart” comes after „apple” |
„albatross”.compareTo(„albany”) | Positive Integer | ’t' comes after 'n' |
To jest nieco mylące. Zauważmy, że stringA.compareTo( stringB )
zwraca ujemną liczbę całkowitą, gdy stringA
i stringB
są w prawidłowej kolejności.
.