Las cadenas en Java son objetos que están soportados internamente sólo por una matriz, lo que significa una asignación contigua de memoria para los caracteres. Tenga en cuenta que las cadenas son inmutables en Java, lo que significa que una vez que creamos un objeto String y le asignamos algunos valores, no podemos cambiar el contenido. Sin embargo podemos crear otro objeto String con las modificaciones que queramos.
La clase String de Java comprende muchos métodos para ejecutar varias operaciones en cadenas y nos centraremos en Java String. comparar con() método en este artículo.
Método Java String.compareTo()
la java comparar con() El método compara la cadena dada con la cadena actual. lexicográficamente . Devuelve un número positivo, un número negativo o 0. Compara cadenas basándose en el valor Unicode de cada carácter en las cadenas.
Ejemplo:
Java
public> class> StringCompareTo {> > public> static> void> main(String[] args) {> > String str1 => 'Geeks'> ;> > String str2 => 'Geeks'> ;> > int> comparison = str1.compareTo(str2);> > if> (comparison <> 0> ) {> > System.out.println(str1 +> ' comes before '> + str2 +> ' lexicographically.'> );> > }> else> if> (comparison>> 0> ) {> > System.out.println(str1 +> ' comes after '> + str2 +> ' lexicographically.'> );> > }> else> {> > System.out.println(str1 +> ' and '> + str2 +> ' are lexicographically equal.'> );> > }> > }> }> |
>
>
Producción:
Geeks and Geeks are lexicographically equal.>
Sintaxis
int comparison = str1.compareTo(str2);>
Parámetros:
La actriz Rubina Dilaik
- cadena1: Cadena 1 para comparar
- cadena2: Cadena 2 para comparar
Devoluciones:
- si cadena1> cadena2 , vuelve positivo número
- si cadena1
- si cadena1 == cadena2 , vuelve 0
Excepción: Lanza las siguientes dos excepciones:
- Excepción de puntero nulo- si el objeto especificado es nulo.
- ClassCastException- si el objeto actual no se puede comparar con el objeto especificado.
Variantes del método CompareTo()
Hay tres variantes del comparar con() método que son los siguientes:
- usando int compareTo (Objeto obj)
- usando int compareTo (cadena otra cadena)
- usando int compareToIgnoreCase (String str)
1. int comparar con (objeto objeto)
Este método compara esta Cadena con otro Objeto.
Sintaxis:
int compareTo(Object obj)>
Parámetros:
obj: the Object to be compared.>
Valor de retorno: El valor 0 si el argumento es una cadena lexicográficamente igual a esta cadena; un valor menor que 0 si el argumento es una cadena lexicográficamente mayor que esta cadena; y un valor mayor que 0 si el argumento es una cadena lexicográficamente menor que esta cadena.
Ejemplo:
A continuación se muestra la implementación de int compareTo (Object obj):
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));> > }> }> |
>
índice java de
>Producción
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0 Difference of astha(obj) and geeksforgeeks(str) : 6>
2. int comparar con (cadena otra cadena)
Este método compara dos cadenas lexicográficamente.
Sintaxis:
int compareTo(String anotherString)>
Parámetros:
anotherString: the String to be compared.>
Valor de retorno: El valor 0 si el argumento es una cadena lexicográficamente igual a esta cadena; un valor menor que 0 si el argumento es una cadena lexicográficamente mayor que esta cadena; y un valor mayor que 0 si el argumento es una cadena lexicográficamente menor que esta cadena.
Ejemplo:
A continuación se muestra la implementación de int compareTo(String anotherString):
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 (cadena cadena)
Este método compara dos cadenas lexicográficamente, ignorando las diferencias entre mayúsculas y minúsculas.
Sintaxis:
int compareToIgnoreCase(String str)>
Parámetros:
str: the String to be compared.>
Valor de retorno: Este método devuelve un entero negativo, cero o un entero positivo ya que la cadena especificada es mayor, igual o menor que esta cadena, ignorando las consideraciones entre mayúsculas y minúsculas.
Ejemplo:
comprobar si hay nulo en java
A continuación se muestra la implementación de int compareToIgnoreCase(String str):
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>
Excepciones en el método Java String compareTo()
El método compareTo() en Java puede generar dos posibles excepciones:
- Excepción de puntero nulo
- Excepción ClassCast
compareTo() NullPointerException
En Java, el método compareTo() genera una excepción NullPointerException si alguno de los objetos que se comparan es nulo . Esto garantiza que maneje explícitamente valores nulos y evite comportamientos inesperados.
Ejemplo:
diferencia simétrica
Java
public> class> cmp5> {> // 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(> 'Geeks'> );> > System.out.println(no);> }> }> |
>
>
Producción:
Exception in thread 'main' java.lang.NullPointerException at cmp5.main(cmp5.java:11)>
compareTo() ClassCastException
Es una excepción de tiempo de ejecución y ocurre cuando se comparan dos objetos de tipos incompatibles en el método compareTo().
Ejemplo:
Java
cómo convertir una cadena a un número entero en java
public> class> ClassCastExceptionExample {> > public> static> void> main(String[] args) {> > Object obj1 => 'Hello'> ;> > Object obj2 => 10> ;> // Integer object> > // Explicitly cast obj2 to String to force the exception> > int> comparison = ((String) obj2).compareTo(obj1);> > System.out.println(> 'Comparison: '> + comparison);> > }> }> |
>
>
Producción:
./ClassCastExceptionExample.java:8: error: incompatible types: Object cannot be converted to String int comparison = ((String) obj2).compareTo(obj1); // ClassCastException occurs here>
Lea también:
- Comparar dos cadenas en Java
- Compara dos cadenas lexicográficamente en Java
- Método Java entero compareTo ()
Conclusión
La función compareTo() en Java se utiliza para comparar dos cadenas u objetos lexicográficamente. Devuelve un número entero positivo, cero o negativo. En este tutorial, cubrimos este método y discutimos su funcionamiento y excepciones.
Leer más Métodos de cadena de Java
Método Java String CompareTo(): preguntas frecuentes
¿Cómo comparar cadenas en Java?
Puede comparar cadenas en Java utilizando el método compareTo(). Acepta dos parámetros y los compara lexicográficamente.
¿Cuál es la diferencia entre el método compareTo() y el método equals() en Java?
método igual() método comparar con () Se utiliza para comprobar si dos objetos son exactamente iguales. Se utiliza para comparar dos objetos y determinar su orden relativo. Devuelve un booleano:
- Es cierto si los objetos se consideran iguales.
- falso en caso contrario.
Devuelve un número entero:
- Valor negativo si el primer objeto se considera menor que el segundo.
- Cero si los objetos se consideran iguales.
- Valor positivo si el primer objeto se considera mayor que el segundo.
¿Qué devuelve compareTo () en Java?
El método compareTo() en Java devuelve un número entero. Puede tener tres valores posibles:
- Valor negativo: Cuando el primer objeto se considera menor que el segundo.
- Cero: Cuando los objetos se consideran iguales.
- Valor positivo: Cuando el primer objeto se considera mayor que el segundo.