J'utilise actuellement la méthode contains appartenant à la classe ArrayList pour effectuer une recherche. Existe-t-il un moyen de rendre cette recherche insensible à la casse en Java ? J'ai trouvé qu'en C# il est possible d'utiliser OrdinalIgnoreCase. Existe-t-il un équivalent Java, ou une autre façon de le faire? Merci.
Réponses
Trop de publicités?Vous pouvez l'utiliser exactement comme vous utiliseriez n'importe quel autre ArrayList. Vous pouvez transmettre cette liste à un autre code, et le code externe n'aura pas à comprendre les classes wrapper de chaîne.
public class CustomStringList3 extends ArrayList<String> {
@Override
public boolean contains(Object o) {
String paramStr = (String)o;
for (String s : this) {
if (paramStr.equalsIgnoreCase(s)) return true;
}
return false;
}
}
Free-Minded
Points
2967
Josh M
Points
4212
user1129335
Points
255
En regardant l' API Java , il n'y a pas de telle méthode pour contains.
Mais vous pouvez faire au moins deux choses :
- Remplacez la méthode equals de votre objet ArrayList par la vôtre, ou equalsIgnoreCase(str)
-
Écrivez votre propre méthode contains, qui doit parcourir vos entités ArrayList, et effectuez une vérification manuelle.
ArrayList<String> list = new ArrayList<String>(); ... containsIgnoreCase("a", list); public boolean containsIgnoreCase(String str, ArrayList<String> list){ for(String i : list){ if(i.equalsIgnoreCase(str)) return true; } return false; }