Le Classe de chaîne Java compareTo() La méthode compare la chaîne donnée avec la chaîne actuelle de manière lexicographique. Il renvoie un nombre positif, un nombre négatif ou 0.
Il compare les chaînes sur la base de la valeur Unicode de chaque caractère des chaînes.
Si la première chaîne est lexicographiquement supérieure à la deuxième chaîne, elle renvoie un nombre positif (différence de valeur du caractère). Si la première chaîne est lexicographiquement inférieure à la deuxième chaîne, elle renvoie un nombre négatif, et si la première chaîne est lexicographiquement égale à la deuxième chaîne, elle renvoie 0.
if s1 > s2, it returns positive number if s1 <s2, 0 it returns negative number if s1="=" s2, < pre> <h3>Syntax</h3> <pre> public int compareTo(String anotherString) </pre> <p>The method accepts a parameter of type String that is to be compared with the current string.</p> <p>It returns an integer value. It throws the following two exceptions:</p> <p> <strong>ClassCastException:</strong> If this object cannot get compared with the specified object.</p> <p> <strong>NullPointerException:</strong> If the specified object is null.</p> <h2>Internal implementation</h2> <pre> int compareTo(String anotherString) { int length1 = value.length; int length2 = anotherString.value.length; int limit = Math.min(length1, length2); char v1[] = value; char v2[] = anotherString.value; int i = 0; while (i <limit) { char ch1="v1[i];" ch2="v2[i];" if (ch1 !="ch2)" return - ch2; } i++; length1 length2; < pre> <h2>Java String compareTo() Method Example</h2> <p> <strong>FileName:</strong> CompareToExample.java</p> <pre> public class CompareToExample{ public static void main(String args[]){ String s1='hello'; String s2='hello'; String s3='meklo'; String s4='hemlo'; String s5='flag'; System.out.println(s1.compareTo(s2));//0 because both are equal System.out.println(s1.compareTo(s3));//-5 because 'h' is 5 times lower than 'm' System.out.println(s1.compareTo(s4));//-1 because 'l' is 1 times lower than 'm' System.out.println(s1.compareTo(s5));//2 because 'h' is 2 times greater than 'f' }} </pre> <span> Test it Now </span> <p> <strong>Output:</strong> </p> <pre> 0 -5 -1 2 </pre> <h2>Java String compareTo(): empty string</h2> <p>When we compare two strings in which either first or second string is empty, the method returns the length of the string. So, there may be two scenarios:</p> <ul> <li>If <strong>first</strong> string is an empty string, the method returns a <strong>negative</strong> </li> <li>If <strong>second</strong> string is an empty string, the method returns a <strong>positive</strong> number that is the length of the first string.</li> </ul> <p> <strong>FileName:</strong> CompareToExample2.java</p> <pre> public class CompareToExample2{ public static void main(String args[]){ String s1='hello'; String s2=''; String s3='me'; System.out.println(s1.compareTo(s2)); System.out.println(s2.compareTo(s3)); }} </pre> <span> Test it Now </span> <p> <strong>Output:</strong> </p> <pre> 5 -2 </pre> <h3>Java String compareTo(): case sensitive</h3> <p>To check whether the compareTo() method considers the case sensitiveness of characters or not, we will make the comparison between two strings that contain the same letters in the same sequence.</p> <p>Suppose, a string having letters in uppercase, and the second string having the letters in lowercase. On comparing these two string, if the outcome is 0, then the compareTo() method does not consider the case sensitiveness of characters; otherwise, the method considers the case sensitiveness of characters.</p> <p> <strong>FileName:</strong> CompareToExample3.java</p> <pre> public class CompareToExample3 { // main method public static void main(String argvs[]) { // input string in uppercase String st1 = new String('INDIA IS MY COUNTRY'); // input string in lowercase String st2 = new String('india is my country'); System.out.println(st1.compareTo(st2)); } } </pre> <p> <strong>Output:</strong> </p> <pre> -32 </pre> <p> <strong>Conclusion:</strong> It is obvious by looking at the output that the outcome is not equal to zero. Hence, the compareTo() method takes care of the case sensitiveness of characters.</p> <h3>Java String compareTo(): ClassCastException</h3> <p>The <strong>ClassCastException</strong> is thrown when objects of incompatible types get compared. In the following example, we are comparing an object of the ArrayList (al) with a string literal ('Sehwag').</p> <p> <strong>FileName:</strong> CompareToExample4.java</p> <pre> // import statement import java.util.*; class Players { private String name; // constructor of the class public Players(String str) { name = str; } } public class CompareToExample4 { // main method public static void main(String[] args) { Players ronaldo = new Players('Ronaldo'); Players sachin = new Players('Sachin'); Players messi = new Players('Messi'); ArrayList al = new ArrayList(); al.add(ronaldo); al.add(sachin); al.add(messi); // performing binary search on the list al Collections.binarySearch(al, 'Sehwag', null); } } </pre> <p> <strong>Output:</strong> </p> <pre> Exception in thread 'main' java.lang.ClassCastException: class Players cannot be cast to class java.lang.Comparable </pre> <h3>Java String compareTo(): NullPointerException</h3> <p>The NullPointerException is thrown when a null object invokes the compareTo() method. Observe the following example.</p> <p> <strong>FileName:</strong> CompareToExample5.java</p> <pre> public class CompareToExample5 { // 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('India is my country.'); System.out.println(no); } } </pre> <p> <strong>Output:</strong> </p> <pre> Exception in thread 'main' java.lang.NullPointerException at CompareToExample5.main(CompareToExample5.java:9) </pre> <hr></limit)></pre></s2,>
La méthode accepte un paramètre de type String qui doit être comparé à la chaîne actuelle.
Il renvoie une valeur entière. Il lève les deux exceptions suivantes :
ClassCastException : Si cet objet ne peut pas être comparé à l'objet spécifié.
NullPointerException : Si l'objet spécifié est nul.
chaîne en jsonobject
Implémentation interne
int compareTo(String anotherString) { int length1 = value.length; int length2 = anotherString.value.length; int limit = Math.min(length1, length2); char v1[] = value; char v2[] = anotherString.value; int i = 0; while (i <limit) { char ch1="v1[i];" ch2="v2[i];" if (ch1 !="ch2)" return - ch2; } i++; length1 length2; < pre> <h2>Java String compareTo() Method Example</h2> <p> <strong>FileName:</strong> CompareToExample.java</p> <pre> public class CompareToExample{ public static void main(String args[]){ String s1='hello'; String s2='hello'; String s3='meklo'; String s4='hemlo'; String s5='flag'; System.out.println(s1.compareTo(s2));//0 because both are equal System.out.println(s1.compareTo(s3));//-5 because 'h' is 5 times lower than 'm' System.out.println(s1.compareTo(s4));//-1 because 'l' is 1 times lower than 'm' System.out.println(s1.compareTo(s5));//2 because 'h' is 2 times greater than 'f' }} </pre> <span> Test it Now </span> <p> <strong>Output:</strong> </p> <pre> 0 -5 -1 2 </pre> <h2>Java String compareTo(): empty string</h2> <p>When we compare two strings in which either first or second string is empty, the method returns the length of the string. So, there may be two scenarios:</p> <ul> <li>If <strong>first</strong> string is an empty string, the method returns a <strong>negative</strong> </li> <li>If <strong>second</strong> string is an empty string, the method returns a <strong>positive</strong> number that is the length of the first string.</li> </ul> <p> <strong>FileName:</strong> CompareToExample2.java</p> <pre> public class CompareToExample2{ public static void main(String args[]){ String s1='hello'; String s2=''; String s3='me'; System.out.println(s1.compareTo(s2)); System.out.println(s2.compareTo(s3)); }} </pre> <span> Test it Now </span> <p> <strong>Output:</strong> </p> <pre> 5 -2 </pre> <h3>Java String compareTo(): case sensitive</h3> <p>To check whether the compareTo() method considers the case sensitiveness of characters or not, we will make the comparison between two strings that contain the same letters in the same sequence.</p> <p>Suppose, a string having letters in uppercase, and the second string having the letters in lowercase. On comparing these two string, if the outcome is 0, then the compareTo() method does not consider the case sensitiveness of characters; otherwise, the method considers the case sensitiveness of characters.</p> <p> <strong>FileName:</strong> CompareToExample3.java</p> <pre> public class CompareToExample3 { // main method public static void main(String argvs[]) { // input string in uppercase String st1 = new String('INDIA IS MY COUNTRY'); // input string in lowercase String st2 = new String('india is my country'); System.out.println(st1.compareTo(st2)); } } </pre> <p> <strong>Output:</strong> </p> <pre> -32 </pre> <p> <strong>Conclusion:</strong> It is obvious by looking at the output that the outcome is not equal to zero. Hence, the compareTo() method takes care of the case sensitiveness of characters.</p> <h3>Java String compareTo(): ClassCastException</h3> <p>The <strong>ClassCastException</strong> is thrown when objects of incompatible types get compared. In the following example, we are comparing an object of the ArrayList (al) with a string literal ('Sehwag').</p> <p> <strong>FileName:</strong> CompareToExample4.java</p> <pre> // import statement import java.util.*; class Players { private String name; // constructor of the class public Players(String str) { name = str; } } public class CompareToExample4 { // main method public static void main(String[] args) { Players ronaldo = new Players('Ronaldo'); Players sachin = new Players('Sachin'); Players messi = new Players('Messi'); ArrayList al = new ArrayList(); al.add(ronaldo); al.add(sachin); al.add(messi); // performing binary search on the list al Collections.binarySearch(al, 'Sehwag', null); } } </pre> <p> <strong>Output:</strong> </p> <pre> Exception in thread 'main' java.lang.ClassCastException: class Players cannot be cast to class java.lang.Comparable </pre> <h3>Java String compareTo(): NullPointerException</h3> <p>The NullPointerException is thrown when a null object invokes the compareTo() method. Observe the following example.</p> <p> <strong>FileName:</strong> CompareToExample5.java</p> <pre> public class CompareToExample5 { // 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('India is my country.'); System.out.println(no); } } </pre> <p> <strong>Output:</strong> </p> <pre> Exception in thread 'main' java.lang.NullPointerException at CompareToExample5.main(CompareToExample5.java:9) </pre> <hr></limit)>Testez-le maintenant
Sortir:
0 -5 -1 2
Java String compareTo() : chaîne vide
Lorsque nous comparons deux chaînes dont la première ou la deuxième chaîne est vide, la méthode renvoie la longueur de la chaîne. Il peut donc y avoir deux scénarios :
- Si d'abord string est une chaîne vide, la méthode renvoie un négatif
- Si deuxième string est une chaîne vide, la méthode renvoie un positif nombre qui correspond à la longueur de la première chaîne.
Nom de fichier: CompareToExample2.java
public class CompareToExample2{ public static void main(String args[]){ String s1='hello'; String s2=''; String s3='me'; System.out.println(s1.compareTo(s2)); System.out.println(s2.compareTo(s3)); }}Testez-le maintenant
Sortir:
5 -2
Java String compareTo() : sensible à la casse
Pour vérifier si la méthode compareTo() prend en compte ou non la sensibilité à la casse des caractères, nous ferons la comparaison entre deux chaînes contenant les mêmes lettres dans la même séquence.
Supposons qu'une chaîne ait des lettres en majuscules et que la deuxième chaîne ait des lettres en minuscules. En comparant ces deux chaînes, si le résultat est 0, alors la méthode compareTo() ne prend pas en compte la sensibilité à la casse des caractères ; sinon, la méthode prend en compte la sensibilité à la casse des caractères.
Nom de fichier: CompareToExample3.java
public class CompareToExample3 { // main method public static void main(String argvs[]) { // input string in uppercase String st1 = new String('INDIA IS MY COUNTRY'); // input string in lowercase String st2 = new String('india is my country'); System.out.println(st1.compareTo(st2)); } }
Sortir:
-32
Conclusion: Il est évident, en regardant le résultat, que le résultat n’est pas égal à zéro. Par conséquent, la méthode compareTo() prend en charge la sensibilité à la casse des caractères.
Chaîne Java compareTo() : ClassCastException
Le ClassCastException est lancé lorsque des objets de types incompatibles sont comparés. Dans l'exemple suivant, nous comparons un objet de ArrayList (al) avec une chaîne littérale (« Sehwag »).
Nom de fichier: CompareToExample4.java
// import statement import java.util.*; class Players { private String name; // constructor of the class public Players(String str) { name = str; } } public class CompareToExample4 { // main method public static void main(String[] args) { Players ronaldo = new Players('Ronaldo'); Players sachin = new Players('Sachin'); Players messi = new Players('Messi'); ArrayList al = new ArrayList(); al.add(ronaldo); al.add(sachin); al.add(messi); // performing binary search on the list al Collections.binarySearch(al, 'Sehwag', null); } }
Sortir:
Exception in thread 'main' java.lang.ClassCastException: class Players cannot be cast to class java.lang.Comparable
Chaîne Java compareTo() : NullPointerException
L'exception NullPointerException est levée lorsqu'un objet nul appelle la méthode compareTo(). Observez l’exemple suivant.
convertir un entier en chaîne en Java
Nom de fichier: CompareToExample5.java
public class CompareToExample5 { // 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('India is my country.'); System.out.println(no); } }
Sortir:
Exception in thread 'main' java.lang.NullPointerException at CompareToExample5.main(CompareToExample5.java:9)