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", "");
	}
}
1 : tité TITÉ
2 : tité TITÉ
3 : toto TOTO TITÉ
4 : toto TOTO tité
Mais pourquoi ça marche pas avec les accents ????????

La javadoc dit bien
http://download.oracle.com/javase/1,...ttern.html#sum

Case-insensitive matching can also be enabled via the embedded flag expression (?i).
É est bien la majuscule de é ... ce qui fait qu'ils devraient être identiques lors de traitement "case insensitive" !!

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 ?