Método Java String compareTo() con ejemplos

Las strings en Java son objetos que son compatibles internamente con una array de caracteres. Dado que las arrays son inmutables y las strings también son un tipo de array excepcional que contiene caracteres, las strings también son inmutables. 

La clase String de Java comprende muchos métodos para ejecutar varias operaciones en strings como compare(), concat(), equals(), split(), length(), replace(), compareTo(), substring(), etc. De estos métodos, nos centraremos en el método compareTo()

Método String.compareTo()

El método compareTo() de la clase Java String compara lexicográficamente la string dada con la string actual. Devuelve un número positivo, un número negativo o 0. Compara strings en función del valor Unicode de cada carácter de las strings.

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

Nota: 

  • si  string1 > string2 , devuelve  un  número   positivo
  • si  string1 < string2 , devuelve un  número    negativo
  • si  string1 == string2 , devuelve  0  

Hay tres variantes del método compareTo() . Este artículo describe todos ellos, de la siguiente manera 

1. int compareTo(Objeto obj)

Este método compara esta string con otro objeto. 

Sintaxis: 

int compareTo(Object obj)

Parámetros: 

  • obj: el objeto a comparar.

Valor devuelto: el valor 0 si el argumento es una string lexicográficamente igual a esta string; un valor menor que 0 si el argumento es una string lexicográficamente mayor que esta string; y un valor mayor que 0 si el argumento es una string lexicográficamente menor que esta string.

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));
    }
}
Producción

Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0
Difference of astha(obj) and geeksforgeeks(str) : 6

2. int compareTo(String anotherString) 

Este método compara lexicográficamente dos strings. 

Sintaxis: 

int compareTo(String anotherString)

Parámetros: 

  • anotherString:  el String a comparar.

Valor devuelto:  el valor 0 si el argumento es una string lexicográficamente igual a esta string; un valor menor que 0 si el argumento es una string lexicográficamente mayor que esta string; y un valor mayor que 0 si el argumento es una string lexicográficamente menor que esta string.

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));
    }
}
Producción

Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0
Difference of astha(str) and geeksforgeeks(str) : 6

3. int compareToIgnoreCase(String str)  

Este método compara lexicográficamente dos strings, ignorando las diferencias entre mayúsculas y minúsculas. 

Sintaxis:

int compareToIgnoreCase(String str)

Parámetros: 

  • str: el String a comparar.

Valor devuelto: este método devuelve un entero negativo, cero o un entero positivo cuando la string especificada es mayor, igual o menor que esta string, ignorando las consideraciones de mayúsculas y minúsculas.

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));
    }
}
Producción

Difference of geeks and gEEkS (case sensitive) : 32
Difference of geeks and gEEkS (case insensitive) : 0

Este artículo es una contribución de Astha Tyagi . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *