logo

Comparación de cadenas de Java con()

El Comparación de clase de cadena Java con () El método compara lexicográficamente la cadena dada con la cadena actual. Devuelve un número positivo, un número negativo o 0.

Compara cadenas según el valor Unicode de cada carácter de las cadenas.

Si la primera cadena es lexicográficamente mayor que la segunda cadena, devuelve un número positivo (diferencia de valor de carácter). Si la primera cadena es lexicográficamente menor que la segunda cadena, devuelve un número negativo, y si la primera cadena es lexicográficamente igual a la segunda cadena, devuelve 0.

 if s1 &gt; 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=&apos;hello&apos;; String s2=&apos;hello&apos;; String s3=&apos;meklo&apos;; String s4=&apos;hemlo&apos;; String s5=&apos;flag&apos;; System.out.println(s1.compareTo(s2));//0 because both are equal System.out.println(s1.compareTo(s3));//-5 because &apos;h&apos; is 5 times lower than &apos;m&apos; System.out.println(s1.compareTo(s4));//-1 because &apos;l&apos; is 1 times lower than &apos;m&apos; System.out.println(s1.compareTo(s5));//2 because &apos;h&apos; is 2 times greater than &apos;f&apos; }} </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=&apos;hello&apos;; String s2=&apos;&apos;; String s3=&apos;me&apos;; 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(&apos;INDIA IS MY COUNTRY&apos;); // input string in lowercase String st2 = new String(&apos;india is my country&apos;); 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 (&apos;Sehwag&apos;).</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(&apos;Ronaldo&apos;); Players sachin = new Players(&apos;Sachin&apos;); Players messi = new Players(&apos;Messi&apos;); ArrayList al = new ArrayList(); al.add(ronaldo); al.add(sachin); al.add(messi); // performing binary search on the list al Collections.binarySearch(al, &apos;Sehwag&apos;, null); } } </pre> <p> <strong>Output:</strong> </p> <pre> Exception in thread &apos;main&apos; 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(&apos;India is my country.&apos;); System.out.println(no); } } </pre> <p> <strong>Output:</strong> </p> <pre> Exception in thread &apos;main&apos; java.lang.NullPointerException at CompareToExample5.main(CompareToExample5.java:9) </pre> <hr></limit)></pre></s2,>

El método acepta un parámetro de tipo String que se comparará con la cadena actual.

Devuelve un valor entero. Lanza las siguientes dos excepciones:

Excepción ClassCast: Si este objeto no se puede comparar con el objeto especificado.

Excepción de puntero nulo: Si el objeto especificado es nulo.

variables nginx

Implementación interna

 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=&apos;hello&apos;; String s2=&apos;hello&apos;; String s3=&apos;meklo&apos;; String s4=&apos;hemlo&apos;; String s5=&apos;flag&apos;; System.out.println(s1.compareTo(s2));//0 because both are equal System.out.println(s1.compareTo(s3));//-5 because &apos;h&apos; is 5 times lower than &apos;m&apos; System.out.println(s1.compareTo(s4));//-1 because &apos;l&apos; is 1 times lower than &apos;m&apos; System.out.println(s1.compareTo(s5));//2 because &apos;h&apos; is 2 times greater than &apos;f&apos; }} </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=&apos;hello&apos;; String s2=&apos;&apos;; String s3=&apos;me&apos;; 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(&apos;INDIA IS MY COUNTRY&apos;); // input string in lowercase String st2 = new String(&apos;india is my country&apos;); 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 (&apos;Sehwag&apos;).</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(&apos;Ronaldo&apos;); Players sachin = new Players(&apos;Sachin&apos;); Players messi = new Players(&apos;Messi&apos;); ArrayList al = new ArrayList(); al.add(ronaldo); al.add(sachin); al.add(messi); // performing binary search on the list al Collections.binarySearch(al, &apos;Sehwag&apos;, null); } } </pre> <p> <strong>Output:</strong> </p> <pre> Exception in thread &apos;main&apos; 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(&apos;India is my country.&apos;); System.out.println(no); } } </pre> <p> <strong>Output:</strong> </p> <pre> Exception in thread &apos;main&apos; java.lang.NullPointerException at CompareToExample5.main(CompareToExample5.java:9) </pre> <hr></limit)>
Pruébalo ahora

Producción:

 0 -5 -1 2 

Java String compareTo(): ​​cadena vacía

Cuando comparamos dos cadenas en las que la primera o la segunda están vacías, el método devuelve la longitud de la cadena. Entonces, puede haber dos escenarios:

  • Si primero string es una cadena vacía, el método devuelve un negativo
  • Si segundo string es una cadena vacía, el método devuelve un positivo número que es la longitud de la primera cadena.

Nombre del archivo: CompareToExample2.java

 public class CompareToExample2{ public static void main(String args[]){ String s1=&apos;hello&apos;; String s2=&apos;&apos;; String s3=&apos;me&apos;; System.out.println(s1.compareTo(s2)); System.out.println(s2.compareTo(s3)); }} 
Pruébalo ahora

Producción:

 5 -2 

Java String compareTo(): ​​distingue entre mayúsculas y minúsculas

Para comprobar si el método compareTo() considera la distinción entre mayúsculas y minúsculas de los caracteres o no, haremos la comparación entre dos cadenas que contienen las mismas letras en la misma secuencia.

Supongamos que una cadena tiene letras en mayúsculas y la segunda cadena tiene letras en minúsculas. Al comparar estas dos cadenas, si el resultado es 0, entonces el método compareTo() no considera la distinción entre mayúsculas y minúsculas de los caracteres; de lo contrario, el método considera la distinción entre mayúsculas y minúsculas de los caracteres.

Nombre del archivo: CompareToExample3.java

 public class CompareToExample3 { // main method public static void main(String argvs[]) { // input string in uppercase String st1 = new String(&apos;INDIA IS MY COUNTRY&apos;); // input string in lowercase String st2 = new String(&apos;india is my country&apos;); System.out.println(st1.compareTo(st2)); } } 

Producción:

 -32 

Conclusión: Al observar el resultado, es obvio que el resultado no es igual a cero. Por lo tanto, el método compareTo() se encarga de distinguir entre mayúsculas y minúsculas de los caracteres.

Comparación de cadenas de Java con (): ClassCastException

El Excepción ClassCast se lanza cuando se comparan objetos de tipos incompatibles. En el siguiente ejemplo, estamos comparando un objeto de ArrayList (al) con una cadena literal ('Sehwag').

Nombre del archivo: CompareToExample4.java

inicializador de primavera
 // 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(&apos;Ronaldo&apos;); Players sachin = new Players(&apos;Sachin&apos;); Players messi = new Players(&apos;Messi&apos;); ArrayList al = new ArrayList(); al.add(ronaldo); al.add(sachin); al.add(messi); // performing binary search on the list al Collections.binarySearch(al, &apos;Sehwag&apos;, null); } } 

Producción:

 Exception in thread &apos;main&apos; java.lang.ClassCastException: class Players cannot be cast to class java.lang.Comparable 

Comparación de cadenas de Java con (): NullPointerException

La NullPointerException se lanza cuando un objeto nulo invoca el método compareTo(). Observe el siguiente ejemplo.

Nombre del archivo: 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(&apos;India is my country.&apos;); System.out.println(no); } } 

Producción:

 Exception in thread &apos;main&apos; java.lang.NullPointerException at CompareToExample5.main(CompareToExample5.java:9)