Bonjour à tous,
Un bon bout de code vaut mieux que toutes les explications ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public class Test { /** * @param args */ public static void main(String[] args) { String test = " toto TOTO tité TITÉ "; System.out.println("1 :"+removeAll(test,"toto")); System.out.println("2 :"+removeAll(test,"TOTO")); System.out.println("3 :"+removeAll(test,"tité")); System.out.println("4 :"+removeAll(test,"TITÉ")); } public static String removeAll(String text,String libelleToRemove){ return text.replaceAll("(?i)\\b"+libelleToRemove +"\\b", ""); } }Mais pourquoi ça marche pas avec les accents ????????1 : tité TITÉ
2 : tité TITÉ
3 : toto TOTO TITÉ
4 : toto TOTO tité
La javadoc dit bien
http://download.oracle.com/javase/1,...ttern.html#sum
É est bien la majuscule de é ... ce qui fait qu'ils devraient être identiques lors de traitement "case insensitive" !!Case-insensitive matching can also be enabled via the embedded flag expression (?i).
Je sens qu'il y a une fourberie de problème d'encodage derrière mais je ne trouve pas de justification.
Si quelqu'un a une idée ?
Partager