Bonjour,
en ce moment je cherche a comparer des chaines mais pour cela il faut que je ne prenne pas en compte ni la casse ni les accents ...
pour la casse un simple .toUpperCase() suffit mais comment ignorer les accents ?
merci d'avance
bonne soirée
Bonjour,
en ce moment je cherche a comparer des chaines mais pour cela il faut que je ne prenne pas en compte ni la casse ni les accents ...
pour la casse un simple .toUpperCase() suffit mais comment ignorer les accents ?
merci d'avance
bonne soirée
et si tu remplaçait les éèêë... par un 'e' avant la comparaison ?
String.replace
Ca se réalise en fait avec la classe Collator et en jouant sur sa Strength
Bonjour,
Merci de vos reponses
tout d'abord je precise un peu ce qu eje fais j'utilise des expression réguliere
en fait j'ai un champ de recherche, je recupere la chaine de ce champ pour voir si elle matche avec des infos dans ma base de donnée
j'ai regarder un peu la class collator elle me semble peut adapté a ce que je souhaite faire. Mais peut etre ai-je mal compris ?
la solution du String.replace fonctionne mais pas toujours ce qui pose problème.
voilà j'attends vos reactions
merci encore
Cette classe permet de faire des comparaisons entre des chaînes selon certains critères que tu peux lui spécifier, comme ignorer la casse ou les accents, ce qui à priori ressemble à ton problème, ensuite si tu utilise les regexp, il est sûr que ça change la donne.
Le plus simple et le plus adapté n'est-il pas alors de faire le filtrage en base directement et de laisser la base gérer ces comparaisons "sans accent" ?Envoyé par pigpen
Au passage, à mon sens, String.replace dans ce genre de cas c'est un peu du bricolage ...
oui c'est un peu la solution bricolage c'est sur mais bon ...
comment dans une requete sql on peu marquer ce genre de truc ? ignorer la casse et les accents ??
merci de vos réponses
Salut,
Envoyé par anto
Comment comparer des chaînes de caractères selon la Locale ?
Exemple :
Mais cela n'a rien à voir avec JDBC (le sujet n'étais pas bien placé à l'origine).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 String s1 = "Aéoù"; String s2 = "aEoÙ"; System.out.println( s1.equals(s2) ); // false Collator collator = Collator.getInstance(Locale.FRENCH); collator.setStrength(Collator.PRIMARY); // ignore la casse et les accents System.out.println( collator.equals(s1, s2) ); // true
a++
Sinon tu peux aussi le faire en base comme je te disais en utilisant les collations de mysql (voir doc mysql c'est assez bien expliqué)
Envoyé par adiGuba
Merci de vos réponses si rapides![]()
Est-il possible de faire quelque chose de similaires en csharp?
Partager