Les chaînes en Java sont des objets pris en charge en interne par un tableau uniquement, ce qui signifie une allocation contiguë de mémoire pour les caractères. Veuillez noter que les chaînes sont immuables en Java, ce qui signifie qu'une fois que nous créons un objet String et lui attribuons certaines valeurs, nous ne pouvons pas modifier le contenu. Cependant nous pouvons créer un autre objet String avec les modifications que nous souhaitons.
La classe String de Java comprend de nombreuses méthodes pour exécuter diverses opérations sur des chaînes et nous nous concentrerons sur Java String. comparer aux() méthode dans cet article.
Méthode Java String.compareTo()
Le Java comparer aux() la méthode compare la chaîne donnée avec la chaîne actuelle lexicographiquement . Il renvoie un nombre positif, un nombre négatif ou 0. Il compare les chaînes en fonction du Valeur Unicode de chaque caractère dans les chaînes.
Exemple:
Java
public> class> StringCompareTo {> > public> static> void> main(String[] args) {> > String str1 => 'Geeks'> ;> > String str2 => 'Geeks'> ;> > int> comparison = str1.compareTo(str2);> > if> (comparison <> 0> ) {> > System.out.println(str1 +> ' comes before '> + str2 +> ' lexicographically.'> );> > }> else> if> (comparison>> 0> ) {> > System.out.println(str1 +> ' comes after '> + str2 +> ' lexicographically.'> );> > }> else> {> > System.out.println(str1 +> ' and '> + str2 +> ' are lexicographically equal.'> );> > }> > }> }> |
>
>
Sortir:
Geeks and Geeks are lexicographically equal.>
Syntaxe
int comparison = str1.compareTo(str2);>
Paramètres:
- chaîne1 : Chaîne 1 pour comparaison
- chaîne2 : Chaîne 2 pour comparaison
Retour:
- si chaîne1> chaîne2 , ça revient positif nombre
- si chaîne1
- si chaîne1 == chaîne2 , ça revient 0
Exception: Il lève les deux exceptions suivantes :
- NullPointerException- si l'objet spécifié est Null.
- ClassCastException- si l'objet actuel ne peut pas être comparé à l'objet spécifié.
Variantes de la méthode CompareTo()
Il y a trois variantes de la comparer aux() méthode qui sont les suivantes :
- en utilisant int compareTo (Objet obj)
- en utilisant int compareTo (String AnotherString)
- en utilisant int compareToIgnoreCase (String str)
1. int comparerTo(Objet obj)
Cette méthode compare cette chaîne à un autre objet.
Syntaxe:
int compareTo(Object obj)>
Paramètres:
obj: the Object to be compared.>
Valeur de retour : La valeur 0 si l'argument est une chaîne lexicographiquement égale à cette chaîne ; une valeur inférieure à 0 si l'argument est une chaîne lexicographiquement supérieure à cette chaîne ; et une valeur supérieure à 0 si l'argument est une chaîne lexicographiquement inférieure à cette chaîne.
Exemple:
Vous trouverez ci-dessous l'implémentation de int compareTo(Object obj) :
Java
// Java code to demonstrate the> // working of compareTo()> public> class> Cmp1 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeksforgeeks'> ;> > String str2 => new> String(> 'geeksforgeeks'> );> > String str3 => new> String(> 'astha'> );> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks object> > System.out.print(> > 'Difference of geeksforgeeks(obj) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha object> > System.out.print(> > 'Difference of astha(obj) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str3));> > }> }> |
>
>Sortir
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>
2. int compareTo(String anotherString)
Cette méthode compare deux chaînes lexicographiquement.
Syntaxe:
int compareTo(String anotherString)>
Paramètres:
anotherString: the String to be compared.>
Valeur de retour : La valeur 0 si l'argument est une chaîne lexicographiquement égale à cette chaîne ; une valeur inférieure à 0 si l'argument est une chaîne lexicographiquement supérieure à cette chaîne ; et une valeur supérieure à 0 si l'argument est une chaîne lexicographiquement inférieure à cette chaîne.
Exemple:
Vous trouverez ci-dessous l'implémentation de int compareTo(String anotherString) :
Java
// Java code to demonstrate the> // working of compareTo()> public> class> Cmp2 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeksforgeeks'> ;> > String str2 => 'geeksforgeeks'> ;> > String str3 => 'astha'> ;> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks string> > System.out.print(> > 'Difference of geeksforgeeks(str) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha string> > System.out.print(> > 'Difference of astha(str) and geeksforgeeks(str) : '> );> > System.out.println(str1.compareTo(str3));> > }> }> |
>
>Sortir
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0 Difference of astha(str) and geeksforgeeks(str) : 6>
3. int compareToIgnoreCase(String str)
Cette méthode compare deux chaînes lexicographiquement, en ignorant les différences de casse.
Syntaxe:
int compareToIgnoreCase(String str)>
Paramètres:
str: the String to be compared.>
Valeur de retour : Cette méthode renvoie un entier négatif, zéro ou un entier positif car la chaîne spécifiée est supérieure, égale ou inférieure à cette chaîne, en ignorant les considérations de casse.
Exemple:
Vous trouverez ci-dessous l'implémentation de int compareToIgnoreCase(String str) :
Java
// Java code to demonstrate the> // working of compareToIgnoreCase()> public> class> Cmp3 {> > public> static> void> main(String args[])> > {> > // Initializing Strings> > String str1 => 'geeks'> ;> > String str2 => 'gEEkS'> ;> > // Checking if geeksforgeeks string> > // equates to geeksforgeeks string> > // case sensitive> > System.out.print(> > 'Difference of geeks and gEEkS (case sensitive) : '> );> > System.out.println(str1.compareTo(str2));> > // Checking if geeksforgeeks string> > // equates to astha string> > // case insensitive> > // using compareToIgnoreCase()> > System.out.print(> > 'Difference of geeks and gEEkS (case insensitive) : '> );> > System.out.println(str1.compareToIgnoreCase(str2));> > }> }> |
>
>Sortir
Difference of geeks and gEEkS (case sensitive) : 32 Difference of geeks and gEEkS (case insensitive) : 0>
Exceptions dans la méthode Java String compareTo()
La méthode compareTo() en Java peut générer deux exceptions possibles :
- NullPointerException
- ClassCastException
compareTo() NullPointerException
En Java, la méthode compareTo() renvoie une NullPointerException si l'un des objets comparés est nul . Cela garantit que vous gérez explicitement les valeurs nulles et évite tout comportement inattendu.
Exemple:
Java
public> class> cmp5> {> // main method> public> static> void> main(String[] args)> {> > String str => null> ;> > // null is invoking the compareTo method. Hence, the NullPointerException> // will be raised> int> no = str.compareTo(> 'Geeks'> );> > System.out.println(no);> }> }> |
>
>
Sortir:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)>
compareTo() ClassCastException
Il s'agit d'une exception d'exécution qui se produit lorsque deux objets de types incompatibles sont comparés dans la méthode compareTo().
Exemple:
Java
public> class> ClassCastExceptionExample {> > public> static> void> main(String[] args) {> > Object obj1 => 'Hello'> ;> > Object obj2 => 10> ;> // Integer object> > // Explicitly cast obj2 to String to force the exception> > int> comparison = ((String) obj2).compareTo(obj1);> > System.out.println(> 'Comparison: '> + comparison);> > }> }> |
>
>
Sortir:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>
Lire aussi :
- Comparez deux chaînes en Java
- Comparez deux chaînes lexicographiquement en Java
- Méthode Java Integer compareTo()
Conclusion
La fonction compareTo() en Java est utilisée pour comparer lexicographiquement deux chaînes ou objets. Il renvoie un entier positif, nul ou négatif. Dans ce didacticiel, nous avons couvert cette méthode et discuté de son fonctionnement et de ses exceptions.
En savoir plus Méthodes de chaîne Java
Méthode Java String CompareTo() - FAQ
Comment comparer des chaînes en Java ?
Vous pouvez comparer des chaînes en Java à l'aide de la méthode compareTo(). Il accepte deux paramètres et les compare lexicographiquement.
Quelle est la différence entre la méthode compareTo() et la méthode equals() en Java ?
méthode égale() Méthode compareTo() Utilisé pour vérifier si deux objets sont exactement identiques. Utilisé pour comparer deux objets et déterminer leur ordre relatif. Renvoie un booléen :
tableaux Java
- vrai si les objets sont considérés comme égaux.
- faux sinon.
Renvoie un entier :
- Valeur négative si le premier objet est considéré comme inférieur au second.
- Zéro si les objets sont considérés comme égaux.
- Valeur positive si le premier objet est considéré comme supérieur au second.
Que renvoie compareTo() en Java ?
La méthode compareTo() en Java renvoie un entier. Il peut avoir trois valeurs possibles :
- Valeur négative: Lorsque le premier objet est considéré comme inférieur au second.
- Zéro: Quand les objets sont considérés comme égaux.
- Valeur positive : Lorsque le premier objet est considéré comme plus grand que le second.