Qu'est-ce que la méthode Java String compareTo() ?
La méthode compareTo() de la classe de chaînes Java renvoie la valeur 0 si les deux chaînes sont lexicographiquement égales. Si la chaîne comparée est plus grande lexicographiquement, la valeur positive est renvoyée, sinon la valeur négative est renvoyée. Ainsi, la méthode Java string compareTo() est utilisée pour comparer deux chaînes. La valeur Unicode de chaque caractère de la chaîne est toujours utilisée par cette méthode pour les comparer. Lors de la comparaison des chaînes, si l’une d’entre elles est vide, la longueur de la chaîne est toujours renvoyée. Si l’une des chaînes est vide, deux scénarios peuvent se produire. Si la première chaîne est vide alors elle renvoie une valeur négative, sinon elle renvoie une valeur positive. La méthode Java string.compareTo() par défaut est sensible à la casse, mais nous pouvons utiliser la méthode compareToIgnoreCase() de la classe Java String pour ignorer la sensibilité à la casse lors de la comparaison. Cette méthode renvoie également un entier négatif, 0 ou positif comme décrit ci-dessus.Syntaxe
public int compareTo(string str)
public int compareTo(object obj)
Paramètres
La méthode Java string compareTo() reçoit une chaîne ou un objet en paramètre comme vous pouvez le voir ci-dessus dans la syntaxe.Retour
- Il renvoie 0 si les deux sont lexicographiquement égaux.
- Il renvoie un entier positif si la chaîne ou l'objet comparé est plus grand lexicographiquement.
- Il renvoie un entier négatif si l'un des éléments comparés est plus petit lexicographiquement.
Des exceptions
La méthode compareTo() renvoie 2 exceptions.- ClassCastException , si l'objet ne peut pas être comparé, il renvoie cette exception.
- NullPointerException , si la chaîne est nulle, alors NullPointerException est levée.
Exemples de méthodes Java String compareTo()
class Main {
public static void main(String[] args) {
// declaring strings to be used in this example for Java string compareTo() method
String str = "Java compareTo() method example";
String str1 = "Java compareTo() method example";
String str2 = "this is Java compareTo() method example";
String str3 = "Java CompareTo() Method Example";
String str4 = "a Java compareTo() method example";
String str5 = new String("Java compareTo() method example");
// comparing the str and str1 strings
System.out.println(str.compareTo(str1));
// comparing the str and str2 strings
System.out.println(str.compareTo(str2));
// comparing the str and str3 strings
System.out.println(str.compareTo(str3));
// comparing the str and str4 strings
System.out.println(str.compareTo(str4));
// comparing the str string and str5 string object
System.out.println(str.compareTo(str5));
}
}
Sortir
0 -42 74 -23 0
Comme nous le savons, les chaînes str et str1 sont égales lexicographiquement, elles ont donc renvoyé 0. Lors de la comparaison de str et str2 , elles ont renvoyé une valeur négative de 42 car la chaîne comparée str est plus petite lexicographiquement, donc c'est un négatif et sur la base de la valeur unicode t char et J char a une différence de 42, donc une valeur -42 est renvoyée. Pour le reste vous pouvez voir les résultats pour mieux comprendre cette méthode.
Exemple de chaîne vide
public class Main{
public static void main(String args[]){
String str="compareTo()";
// declaring an empty string
String str1="";
String str2="method";
System.out.println(str.compareTo(str1));
System.out.println(str1.compareTo(str2));
}
}
Sortir
11-6
Exemple d'IgnoreCase
public class Main{
public static void main(String args[]){
String str="compareTo()";
// declaring the same string with uppercase letters
String str1="COMPARETO()";
System.out.println(str.compareTo(str1));
System.out.println(str.compareToIgnoreCase(str1));
}
}
Sortir
32 0