Ignorar mayúsculas y minúsculas en Java

Mohammad Irfan 12 octubre 2023
  1. Ignorar mayúsculas y minúsculas usando el método toUppercase() en Java
  2. Ignorar mayúsculas y minúsculas usando el método toLowerCase() en Java
  3. Ignorar caso usando el método equalsIgnoreCase() en Java
  4. Ignorar caso usando el método compareToIgnoreCase() en Java
Ignorar mayúsculas y minúsculas en Java

Este tutorial presenta cómo ignorar mayúsculas y minúsculas de cadenas en Java.

Una cadena es una secuencia de caracteres y, en Java, es una clase que también contiene varios métodos de utilidad. Una cadena puede estar en minúsculas o mayúsculas o una combinación de ambas, lo cual está bien, pero a veces crea un problema al comparar cadenas, ya que cada carácter tiene un valor Unicode único.

En este artículo, aprenderemos a manejar la cadena ignorando las mayúsculas y minúsculas. Estamos familiarizados con la comparación de dos cadenas utilizando el método equals(). Este método devuelve true cuando ambas cadenas son iguales, incluidos sus casos.

Por ejemplo, mira el ejemplo a continuación.

import java.lang.Object;
import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    String a = "SimpleTesting";
    String b = "SimpleTesting";
    String c = "SimpleTesting";
    a.equals(b); // return false
    a.equals(c); // returns true
  }
}

Esto nos hace preguntarnos si hay alguna forma de comparar dos cadenas ignorando sus casos.

Bueno, Java nos proporciona varios enfoques para lograr esta tarea. Aquí, hablaremos sobre estos enfoques en detalle:

  • Ignorar mayúsculas y minúsculas usando el método toUppercase()
  • Ignorar mayúsculas y minúsculas usando el método toLowerCase()
  • Ignorar mayúsculas y minúsculas usando el método equalsIgnoreCase()
  • Ignorar mayúsculas y minúsculas usando el método compareToIgnoreCase()

Ignorar mayúsculas y minúsculas usando el método toUppercase() en Java

Primero convertimos ambas cadenas a mayúsculas en este enfoque y luego llamamos al método equals(). La firma para este método es:

public String toUpperCase()

Este método convierte todos los caracteres de la cadena a mayúsculas según la configuración regional predeterminada. Significa que icecream se convertirá en ICECREAM solo si la configuración regional predeterminada es Locale.ENGLISH o Locale.US.

Es posible que obtengamos resultados impredecibles si el valor local predeterminado se establece en otro país o idioma que no reconoce estos caracteres. Podemos pasar la configuración regional a la llamada de función para evitar esto.

Ahora comparemos dos cadenas usando el método toUpperCase() y equals() en Java. Mira el código a continuación:

import java.lang.Object;
import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    String desert1 = "icecream";
    String desert2 = "IceCream";

    // converting to both the strings to upper case
    String desert1_converted = desert1.toUpperCase();
    String desert2_converted = desert2.toUpperCase();

    // comparing both the desert
    boolean same_or_not1 = desert1_converted.equals(desert2_converted);
    boolean same_or_not2 = desert1.equals(desert2);

    System.out.println("Comparison with conversion: " + same_or_not1);
    System.out.println("Comparison without conversion: " + same_or_not2);
  }
}

Producción :

Comparison with conversion: true
Comparison without conversion: false

En el ejemplo anterior, toUpperCase() funciona bien sin pasar una configuración regional porque nuestra configuración regional predeterminada es el inglés.

Ignorar mayúsculas y minúsculas usando el método toLowerCase() en Java

Este método es como el anterior excepto que convierte todos los caracteres de ambas cadenas a minúsculas. La firma del método es:

public String toLowerCase()

Según la configuración regional predeterminada, este procedimiento cambia todos los caracteres de la cadena a minúsculas.

Significa que si la configuración regional predeterminada es Locale.ENGLISH o Locale.US, entonces ICECREAM se convertirá en icecream. Es posible que obtengamos resultados impredecibles si el valor local predeterminado se establece en otro país o idioma que no reconoce estos caracteres.

Podemos pasar la configuración regional como argumento a la llamada de función para evitar esto. Echemos un vistazo más de cerca a cómo funciona esta función.

Ahora comparemos dos cadenas usando el método toLowerCase() y equals() en Java. Mira el código a continuación:

import java.lang.Object;
import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    String desert1 = "icecream";
    String desert2 = "IceCream";

    // converting to both the strings to lower case
    String desert1_converted = desert1.toLowerCase();
    String desert2_converted = desert2.toLowerCase();

    // comparing both the desert
    boolean same_or_not1 = desert1_converted.equals(desert2_converted);
    boolean same_or_not2 = desert1.equals(desert2);

    System.out.println("Comparison with conversion: " + same_or_not1);
    System.out.println("Comparison without conversion: " + same_or_not2);
  }
}

Producción :

Comparison with conversion: true
Comparision without conversion: false

Ignorar caso usando el método equalsIgnoreCase() en Java

Este método es como el método equals(), excepto que ignora las mayúsculas y minúsculas de las cadenas. Primero veamos la firma del método.

public boolean equalsIgnoreCase(String anotherString)

Este método devuelve true si dos cadenas son iguales después de ignorar sus mayúsculas y minúsculas.

Si la longitud de dos cadenas es la misma y los caracteres correspondientes en las dos cadenas son los mismos, se consideran iguales, ignorando el caso. Según este método, ICECREAM y helado son lo mismo; por lo tanto, se devolverá true.

Mire el código a continuación para entender cómo funciona.

import java.lang.Object;
import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    String desert1 = "icecream";
    String desert2 = "IceCream";

    // comparing both the deserts
    boolean same_or_not1 = desert1.equalsIgnoreCase(desert2);

    System.out.println("Comparison : " + same_or_not1);
  }
}

Producción :

Comparison : true

Ignorar caso usando el método compareToIgnoreCase() en Java

Este enfoque compara lexicográficamente dos cadenas, sin tener en cuenta las diferencias de mayúsculas y minúsculas. Este método devuelve un número entero igual a la diferencia entre los dos primeros caracteres no iguales.

Su firma es:

public int compareToIgnoreCase(String str)

Si ambas cadenas son equivalentes, se devolverá 0. Mira el código de ejemplo a continuación:

import java.lang.Object;
import java.util.*;
public class SimpleTesting {
  public static void main(String args[]) {
    String desert1 = "icecream";
    String desert2 = "IceCream";

    // comparing both the deserts
    int same_or_not1 = desert1.compareToIgnoreCase(desert2);

    System.out.println("Comparision : " + same_or_not1);
  }
}

Producción :

Comparision : 0

Artículo relacionado - Java String