Ignorer les majuscules et les minuscules en Java
-
Ignorer la casse à l’aide de la méthode
toUppercase()
en Java -
Ignorer la casse à l’aide de la méthode
toLowerCase()
en Java -
Ignorer la casse à l’aide de la méthode
equalsIgnoreCase()
en Java -
Ignorer la casse à l’aide de la méthode
compareToIgnoreCase()
en Java
Ce didacticiel explique comment ignorer les majuscules et les minuscules d’une chaîne en Java.
Une chaîne est une séquence de caractères, et en Java, c’est une classe contenant également plusieurs méthodes utilitaires. Une chaîne peut être en minuscules ou en majuscules ou un mélange des deux, ce qui est bien, mais cela crée parfois un problème lors de la comparaison de chaînes car chaque caractère a une valeur Unicode unique.
Dans cet article, nous allons apprendre à manipuler la chaîne en ignorant la casse. Nous sommes habitués à comparer deux chaînes à l’aide de la méthode equals()
. Cette méthode renvoie true
lorsque les deux chaînes sont égales, y compris leurs cas.
Par exemple, regardez l’exemple ci-dessous.
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
}
}
Cela nous amène à nous demander s’il existe un moyen de comparer deux chaînes tout en ignorant leurs cas.
Eh bien, Java nous propose différentes approches pour accomplir cette tâche. Ici, nous allons parler de ces approches en détail :
- Ignorer la casse avec la méthode
toUppercase()
. - Ignorer la casse avec la méthode
toLowerCase()
. - Ignorer les cas en utilisant la méthode
equalsIgnoreCase()
. - Ignorer la casse avec la méthode
compareToIgnoreCase()
.
Ignorer la casse à l’aide de la méthode toUppercase()
en Java
Nous convertissons d’abord les deux chaînes en majuscules dans cette approche, puis nous appelons la méthode equals()
. La signature de cette méthode est :
public String toUpperCase()
Cette méthode convertit tous les caractères de la chaîne en majuscules en fonction des paramètres régionaux par défaut. Cela signifie que icecream
sera converti en ICECREAM
uniquement si la locale par défaut est Locale.ENGLISH
ou Locale.US
.
Nous pourrions obtenir des résultats imprévisibles si le paramètre local par défaut est défini sur un autre pays ou une autre langue qui ne reconnaît pas ces caractères. Nous pouvons passer les paramètres régionaux à l’appel de fonction pour éviter cela.
Comparons maintenant deux chaînes en utilisant les méthodes toUpperCase()
et equals()
en Java. Regardez le code ci-dessous :
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);
}
}
Production :
Comparison with conversion: true
Comparison without conversion: false
Dans l’exemple ci-dessus, le toUpperCase()
fonctionne correctement sans passer de paramètres régionaux car nos paramètres régionaux par défaut sont l’anglais.
Ignorer la casse à l’aide de la méthode toLowerCase()
en Java
Cette méthode est identique à la précédente, sauf qu’elle convertit tous les caractères des deux chaînes en minuscules. La signature de la méthode est :
public String toLowerCase()
Selon les paramètres régionaux par défaut, cette procédure change tous les caractères de la chaîne en minuscules.
Cela signifie que si les paramètres régionaux par défaut sont Locale.ENGLISH
ou Locale.US
, alors ICECREAM
sera converti en icecream
. Nous pourrions obtenir des résultats imprévisibles si le paramètre local par défaut est défini sur un autre pays ou une autre langue qui ne reconnaît pas ces caractères.
Nous pouvons passer la locale comme argument à l’appel de fonction pour éviter cela. Examinons de plus près le fonctionnement de cette fonctionnalité.
Comparons maintenant deux chaînes en utilisant les méthodes toLowerCase()
et equals()
en Java. Regardez le code ci-dessous :
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);
}
}
Production :
Comparison with conversion: true
Comparision without conversion: false
Ignorer la casse à l’aide de la méthode equalsIgnoreCase()
en Java
Cette méthode est identique à la méthode equals()
, sauf qu’elle ignore la casse des chaînes. Regardons d’abord la signature de la méthode.
public boolean equalsIgnoreCase(String anotherString)
Cette méthode renvoie true
si deux chaînes sont égales après avoir ignoré leurs cas.
Si la longueur de deux chaînes est identique et que les caractères correspondants dans les deux chaînes sont identiques, ils sont considérés comme égaux, sans tenir compte de la casse. Selon cette méthode, ICECREAM
et icecream
sont identiques ; par conséquent, true
sera renvoyé.
Regardez le code ci-dessous pour comprendre comment cela fonctionne.
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);
}
}
Production :
Comparison : true
Ignorer la casse à l’aide de la méthode compareToIgnoreCase()
en Java
Cette approche compare lexicographiquement deux chaînes, sans tenir compte des différences de casse. Cette méthode renvoie un entier égal à la différence entre les deux premiers caractères non égaux.
Sa signature est :
public int compareToIgnoreCase(String str)
Si les deux chaînes sont équivalentes, 0
sera renvoyé. Regardez l’exemple de code ci-dessous :
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);
}
}
Production :
Comparision : 0