142 votes

Comment utiliser la méthode `string.startsWith()` en ignorant la casse ?

Je veux utiliser la méthode string.startsWith() mais en ignorant la casse.

Supposons que j'ai une String "Session" et que j'utilise startsWith sur "sEsSi", alors cela devrait retourner true.

Comment puis-je y arriver ?

118voto

Nemesis Points 971

Utilisez toUpperCase() ou toLowerCase() pour standardiser votre chaîne avant de la tester.

102voto

Rohit Jain Points 90368

Une option consiste à convertir les deux en minuscules ou en majuscules :

"Session".toLowerCase().startsWith("sEsSi".toLowerCase()); C'est incorrect. Voir : https://stackoverflow.com/a/15518878/14731

Une autre option consiste à utiliser la méthode String#regionMatches(), qui prend un argument booléen indiquant s'il faut effectuer une comparaison sensible à la casse ou non. Vous pouvez l'utiliser de cette manière :

String haystack = "Session";
String needle = "sEsSi";
System.out.println(haystack.regionMatches(true, 0, needle, 0, needle.length()));  // true

Cela vérifie si la région de needle de l'index 0 à la longueur 5 est présente dans haystack à partir de l'index 0 jusqu'à la longueur 5 ou non. Le premier argument est true, ce qui signifie qu'il effectuera une comparaison insensible à la casse.


Et si vous êtes un grand fan des Regex, vous pouvez faire quelque chose comme ceci :

System.out.println(haystack.matches("(?i)" + Pattern.quote(needle) + ".*"));

L'indicateur intégré (?i) est pour une correspondance insensible à la casse.

20voto

Je sais que je suis en retard, mais que diriez-vous d'utiliser StringUtils.startsWithIgnoreCase() de Apache Commons Lang 3 ?

Exemple :

StringUtils.startsWithIgnoreCase(string, "début");

Il suffit d'ajouter la dépendance suivante à votre fichier pom.xml (en supposant que vous utilisez Maven) :

    org.apache.commons
    commons-lang3
    3.11

1voto

agad Points 821
myString.toLowerCase().startsWith(starting.toLowerCase());

Translation:

myString.toLowerCase().startsWith(starting.toLowerCase());

1voto

newuser Points 3563

Essayez ceci,

String session = "Session";
if(session.toLowerCase().startsWith("sEsSi".toLowerCase()))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X