Nous traduisons la chaîne « Chloé » à « Chloe » avec correspondances codées en dur entre des caractères spéciaux et leur caractère ASCII équivalent, avant la comparaison. Cela fonctionne assez bien mais est maladroit et probablement, il y a quelques caractères spéciaux que nous avons oubliés.
Notre solution ressemble à ceci:
public static String replaceAccents(String string) {
String result = null;
if (string != null) {
result = string;
result = result.replaceAll("[àáâãåä]", "a");
result = result.replaceAll("[ç]", "c");
result = result.replaceAll("[èéêë]", "e");
result = result.replaceAll("[ìíîï]", "i");
result = result.replaceAll("[ñ]", "n");
result = result.replaceAll("[òóôõö]", "o");
result = result.replaceAll("[ùúûü]", "u");
result = result.replaceAll("[ÿý]", "y");
result = result.replaceAll("[ÀÁÂÃÅÄ]", "A");
result = result.replaceAll("[Ç]", "C");
result = result.replaceAll("[ÈÉÊË]", "E");
result = result.replaceAll("[ÌÍÎÏ]", "I");
result = result.replaceAll("[Ñ]", "N");
result = result.replaceAll("[ÒÓÔÕÖ]", "O");
result = result.replaceAll("[ÙÚÛÜ]", "U");
result = result.replaceAll("[Ý]", "Y");
}
return result;
}
Je suis curieux de savoir une bonne réponse à cette question!
En fait, ils ne sont pas égaux, à moins que le 2ème est le français du l'anglais (ce qui signifie que vous devrez le traduire et faire une comparaison). –