Método Java String compareTo(): ​​cómo utilizarlo con ejemplos

¿Qué es el método compareTo() en Java?

comparar con() se utiliza para comparar dos cadenas lexicográficamente. Cada carácter de ambas cadenas se convierte en un valor Unicode. Sin embargo, si ambas cadenas son iguales, entonces este método devuelve 0; de lo contrario, solo dará como resultado un valor negativo o positivo.

El método Java String compareTo() se define en la interfaz java.lang.Comparable

Sintaxis: cómo escribir un método compareTo() en Java:

public int compareTo(String str)

Entrada de parámetros:

str: la función compareTo() en Java acepta solo un tipo de datos de cadena de entrada.

El método devuelve:

Este método Java compareTo() devuelve un tipo de datos int que se basa en la comparación lexicográfica entre dos cadenas.

  • devuelve <0, entonces la cadena que llama al método es lexicográficamente primero
  • devuelve == 0 entonces las dos cadenas son lexicográficamente equivalentes
  • devuelve > 0 entonces el parámetro pasado al método java compareTo() es lexicográficamente primero.

Ejemplo del método Java String compareTo():

compareTo() Java Ejemplo 1:

public class Sample_String {
    public static void main(String[] args) {

        String str_Sample = "a";
        System.out.println("Compare To 'a' b is : " + str_Sample.compareTo("b"));
        str_Sample = "b";
        System.out.println("Compare To 'b' a is : " + str_Sample.compareTo("a"));
        str_Sample = "b";
        System.out.println("Compare To 'b' b is : " + str_Sample.compareTo("b"));
    }

}

Rendimiento esperado

Compare To 'a' b is : -1
Compare To 'b' a is : 1
Compare To 'b' b is : 0

Aquí,

  • El carácter a va delante de b alfabéticamente. Por lo tanto, la salida es -1
  • El carácter b viene después de a alfabéticamente. Por lo tanto la salida es 1
  • El carácter b es equivalente, por lo tanto la salida es 0.

Puede utilizar el método Utilice "compareToIgnoreCase" en caso de que no desee que el resultado distinga entre mayúsculas y minúsculas. Entendamos con un ejemplo de Java compareTo().

compareTo() Java Ejemplo 2:

public class Sample_String {
    public static void main(String[] args) {
        //Compare to a String
        String str_Sample = "RockStar";
        System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar"));
        //Compare to - Ignore case
        System.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR"));
    }
}

Rendimiento esperado

Compare To 'ROCKSTAR': -32
Compare To 'ROCKSTAR' - Case Ignored: 0

¿Cuándo utilizar el método compareTo() en Java?

El método Java String compareTo() se utiliza para realizar una clasificación natural en cadenas. Clasificación natural significa el orden de clasificación que se aplica al objeto, por ejemplo, orden léxico para cadenas, orden numérico para clasificación de números enteros, etc.

El orden léxico no es más que orden alfabético. El método Java compareTo() realiza una comparación secuencial de letras en la cadena que tienen la misma posición.

En este método, si la primera cadena es siempre lexicográficamente mayor que la segunda cadena, devuelve un número positivo.

si a1 > a2, devuelve un número negativo

si a1 < a2, devuelve un número positivo

si a1 == a2, devuelve 0

Entendamos con el ejemplo Java String compareTo().

compareTo() Java Ejemplo 3:

public class Compare {
    public static void main(String[] args) {
        String s1 = "Guru1";
        String s2 = "Guru2";
        System.out.println("String 1: " + s1);
        System.out.println("String 2: " + s2);

        // Compare the two strings.  
        int S = s1.compareTo(s2);

        // Show the results of the comparison.  
        if (S < 0) {
            System.out.println("\"" + s1 + "\"" + " is lexicographically higher than " + "\"" + s2 + "\"");
        } else if (S == 0) {
            System.out.println("\"" + s1 + "\"" + " is lexicographically  equal to " + "\"" + s2 + "\"");
        } else if (S > 0) {
            System.out.println("\"" + s1 + "\"" + " is lexicographically less than " + "\"" + s2 + "\"");
        }
    }
}

Rendimiento esperado:

String 1: Guru1
String 2: Guru2
"Guru1" is lexicographically higher than "Guru2"