Votre navigateur ne supporte pas le canevas HTML 5. Essayez Chrome.
Pour mettre des éléments en ordre, il faut pouvoir comparer deux éléments. Avec les chaînes de caractères, l’ordre habituel est l’ordre lexicographique. C’est l’ordre du dictionnaire, sauf que toutes les lettres majuscules précèdent toutes les lettres minuscules. Cet ordre est celui qu’utilise la méthode compareTo()
de la classe String
.
Deux chaînes de caractères sont lexicographiquement égales si elles ont la même longueur et contiennent les mêmes caractères aux mêmes positions. Dans ce cas, stringA.compareTo( stringB )
renvoie 0.
Sinon, stringA.compareTo( stringB )
renvoie une valeur négative si StringA
vient en premier et une valeur positive si StringB
vient en premier.
Aide-mémoire : imaginez que les chaînes de caractères d’un dictionnaire sont classées de la plus petite à la plus grande. Alors stringA - stringB
produirait une valeur négative si stringA
venait avant StringB
.
Pour déterminer quelle chaîne vient en premier, il faut comparer les caractères correspondants des deux chaînes de gauche à droite. Le premier caractère où les deux chaînes diffèrent détermine la chaîne qui vient en premier. Les caractères sont comparés en utilisant le jeu de caractères Unicode. Toutes les lettres majuscules viennent avant les lettres minuscules. Si deux lettres sont de la même casse, alors l’ordre alphabétique est utilisé pour les comparer.
Si deux chaînes de caractères contiennent les mêmes caractères aux mêmes positions, alors la chaîne la plus courte vient en premier.
Relation | stringA.compareTo( stringB ) | ||
---|---|---|---|
stringA | Moins que | stringB | Entier négatif |
stringA | Égal | stringB | Zéro | stringA | Grandi Than | stringB | Entier positif |
Expression | Evalue à | Explication |
---|---|---|
« Zebra ».compareTo(« ant ») | Entier négatif | Casse supérieure ‘Z’ vient avant la casse inférieure ‘a’ |
« Apple ».compareTo(« apple ») | Entier négatif | Casse supérieure ‘A’ vient avant la casse inférieure ‘a’ | « apple ».compareTo(« orange ») | Entier négatif | ‘a’ vient avant ‘o’ | « érable ».compareTo(« matin ») | Entier négatif | ‘a’ vient avant ‘o’ |
« pomme ».compareTo(« apple ») | Zéro | même longueur, mêmes caractères dans les mêmes positions | « orange ».compareTo(« apple ») | Entier positif | « o » vient après « a » | « applecart ».compareTo(« apple ») | Entier positif | La chaîne la plus longue « applecart » vient après « apple » | « albatross ».compareTo(« albany ») | Entier positif | ‘t’ vient après ‘n’ |
Ceci est légèrement déroutant. Remarquez que stringA.compareTo( stringB )
renvoie un nombre entier négatif lorsque stringA
et stringB
sont dans le bon ordre.