Introducción a la comparación de cadenas en Java

En Java, una secuencia de caracteres se conoce como una cadena. Es inmutable (no se puede cambiar una vez que se crea) y ayuda a realizar varias operaciones. Además, una comparación de cadenas es una tarea de programación común en Java. Se puede realizar de varias maneras y se discutirá en las siguientes secciones en detalle.

¿Cómo comparar cadenas en Java?

Como ya se discutió, la comparación de cadenas se puede hacer usando diferentes métodos. Son:

  • Usando el método equals ()
  • Usando el método compareTo ()
  • Usando el método equalsIgnoreCase ()
  • Usando el método compareToIgnoreCase ()

1. Método Equals ()

El método equals () compara dos cadenas en función del contenido de la cadena. Si las cadenas no están en el mismo caso (es decir, mayúsculas o minúsculas), se considerará como no igual. A continuación se muestra un ejemplo del método equals ().

Programa

public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "Balloon";
//string comparison using equals method
if (str1.equals(str2)) (
System.out.println("Both str1 : " + str1 + " and str2 : "+ str2 +" are equal");
)
else
(
System.out.println("Both str1 : " + str1 + " and str2 : "+ str2 +" are not equal");
)
String str3 = "Happy";
String str4 = "hai";
if (str3.equals(str4)) (
System.out.println("Both str3 : " + str3 + " and str4 : "+ str4 +" are equal");
)
else
(
System.out.println("Both str3 : " + str3 + " and str4 : "+ str4 +" are not equal");
)
String str5 = "Happy";
String str6 = "hard";
if (str5.equals(str6)) (
System.out.println("Both str5 : " + str5 + "and str6 : "+ str6 +" are equal");
)
else
(
System.out.println("Both str5 : " + str5 + " and str6 : "+ str6 +" are not equal");
)
)
)

Salida:

Explicación del código anterior.

  • Aquí, dos cadenas str1 y str2 son iguales ya que son del mismo caso. (El caso de Carmel).
  • Además, Str3 y Str4, str5 y str6 no son iguales.

2. Compare con el método ()

En este método, los valores se comparan lexicográficamente y devuelven un valor de tipo entero. El valor se basa en si la primera cadena es igual, menor o mayor que la segunda cadena.

Dos cadenas str1 y str2 están presentes y

  • si str1 == str2, entonces 0
  • si str1> str2, entonces + ve valor
  • si str1 <str2, entonces -ve valor

Programa

//Java program to demonstrate compareTo method
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "Balloon";
String str3 = "Happy";
String str4 = "hai";
//string comparison using compareTo method
System.out.println(str1.compareTo(str2));
System.out.println(str3.compareTo(str4));
String str5 = "Happy";
String str6 = "Hardest one";
System.out.println(str5.compareTo(str6));
)
)

Salida:

Explicación del código anterior.

  • Como dos cadenas str1 y str2 son iguales lexicográficamente, se devuelve 0.
  • Al mismo tiempo, str3 es menor que str4 y str5 es menor que str6 lexicográficamente. Entonces, se devuelve un valor negativo.

3. Ignorar método de caso ignorado

Usando este método, se compararán dos cadenas sin considerar si la cadena es mayúscula o minúscula.

Programa

//Java program to demonstrate equalsIgnoreCase method
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "balloon";
//string comparison using equalsIgnoreCase method
System.out.println(str1.equalsIgnoreCase(str2));
String str3 = "Happy";
String str4 = "hai";
System.out.println(str3.equalsIgnoreCase(str4));
String str5 = "Happy";
String str6 = "hard";
System.out.println(str5.equalsIgnoreCase(str6));
)
)

Salida:

Explicación del código anterior.

  • Como se utiliza el método equalsIgnoreCase, str1 y str2 son iguales aunque sean de mayúsculas y minúsculas (minúsculas y mayúsculas). Entonces, True es devuelto.
  • En el caso de str3 y str4, str5 y str6, dos cadenas son diferentes. Por lo tanto, se devuelve falso.

4. Comparar con Ignorar método de caso

Este método es similar al método compareTo donde las cadenas se comparan lexicográficamente. La diferencia es que la comparación no se verá afectada si las cadenas están en mayúsculas o minúsculas.

Programa

//Java program to demonstrate compareToIgnoreCase method
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "balloon";
//string comparison using compareToIgnoreCase method
System.out.println(str1.compareToIgnoreCase(str2));
String str3 = "Happy";
String str4 = "hai";
System.out.println(str3.compareToIgnoreCase(str4));
String str5 = "Happy";
String str6 = "Hard";
System.out.println(str5.compareToIgnoreCase(str6));
)
)

Salida:

Explicación del código anterior.

  • Aquí, se realiza una combinación de compareTo e Ignorecase. Como tanto str1 como str2 son iguales sin considerar los casos, se devuelve 0.
  • De manera similar, se devuelve un valor positivo ya que str3 es mayor que str4 y se devuelve un valor negativo cuando str5 es menor que str6.

Ahora, veamos todos los métodos mencionados anteriormente en un solo programa para que se pueda obtener una mejor comprensión con respecto a la comparación de cadenas.

Programa

//Java program to demonstrate different methods for string comparison
public class StringComparisonExamples (
public static void main(String() args) (
String str1 = "Balloon";
String str2 = "Balloon";
System.out.println("Comparison of str1 : " + str1 + " and str2 : " + str2);
System.out.println("Using equals method ");
//string comparison using equals method
if (str1.equals(str2)) (
System.out.println("Both are equal");
)
else
(
System.out.println("Both are not equal");
)
System.out.println("Using compareTo method ");
//string comparison using compareTo method
System.out.println(str1.compareTo(str2));
System.out.println("Using equalsIgnoreCase method ");
//string comparison using equalsIgnoreCase method
System.out.println(str1.equalsIgnoreCase(str2));
System.out.println("Using compareToIgnoreCase method ");
//string comparison using compareToIgnoreCase method
System.out.println(str1.compareToIgnoreCase(str2));
String str3 = "Happy";
String str4 = "hai";
System.out.println("\nComparison of str3 : " + str3 + " and str4 : " + str4);
System.out.println("Using equals method ");
if (str3.equals(str4)) (
System.out.println("Both are equal");
)
else
(
System.out.println("Both are not equal");
)
System.out.println("Using compareTo method ");
System.out.println(str3.compareTo(str4));
System.out.println("Using equalsIgnoreCase method ");
System.out.println(str3.equalsIgnoreCase(str4));
System.out.println("Using compareToIgnoreCase method ");
System.out.println(str3.compareToIgnoreCase(str4));
String str5 = "Happy";
String str6 = "hard";
System.out.println("\nComparison of str5 : " + str5 + " and str6 : " + str6);
System.out.println("Using equals method ");
if (str5.equals(str6)) (
System.out.println("Both are equal");
)
else
(
System.out.println("Both are not equal");
)
System.out.println("Using compareTo method ");
System.out.println(str5.compareTo(str6));
System.out.println("Using equalsIgnoreCase method ");
System.out.println(str5.equalsIgnoreCase(str6));
System.out.println("Using compareToIgnoreCase method ");
System.out.println(str5.compareToIgnoreCase(str6));
)
)

Salida:

Conclusión

Una cadena es una secuencia de caracteres y sus objetos son inmutables. Existen diferentes métodos, como equals, compareTo, etc. disponibles para comparar las cadenas. Todos estos métodos se utilizan según los requisitos. Se explican en la sección anterior en detalle.

Artículos recomendados

Esta es una guía sobre la comparación de cadenas en Java. Aquí discutimos la Introducción a la comparación de cadenas en Java, Cómo comparar cadenas en Java junto con códigos y salidas. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Palabra clave protegida en Java
  2. JTextArea en Java
  3. GridBagLayout en Java
  4. Métodos de matriz en Java