Salut
Je voulais savoir s'il existe une fonction qui permet de passer les String en majuscule en supprimant tous les accents. Je n'ai vraiment pas envie de la créer moi-même.
Version imprimable
Salut
Je voulais savoir s'il existe une fonction qui permet de passer les String en majuscule en supprimant tous les accents. Je n'ai vraiment pas envie de la créer moi-même.
Bonjour,
J'avais fait une méthode à voir là :
http://www.developpez.net/forums/vie...t=caract%E8res
a+
tu peux par exemple utiliser la méthode replace :
Mais il y a sans doute d'autres façons de faire...Code:
1
2
3
4 taString.replace("é", "e"); taString.replace("è", "e"); ...
Merci pour vos réponses, mais je crois que je n'ai pas été assez précis :oops: . Je souhaite également enlever tous les caractères unicodes, spéciaux et autres pour ne garder que les lettres de A à Z (en majuscule).
Il y a aussi des JTextArea dans l'application et je dois enlever les sauts de lignes, tabulation ...
J'ai commencé à faire ma méthode à la main mais pour les caractères unicodes je bloque. :?
Merci pour les coups de main
Et en utilisant les expressions régulières...
exemple :
Code:
1
2
3 result = result.replaceAll("(-|'|:|_|!|?|;|,|§|(|))", ""); .....
Ce que j'ai fait c'est :
Mais le problème c'est qu'il reste tous les caractères unicode. Et là je ne parviens pas à les enlever.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public static String toUpperCaseSansAccent(String chaine) { if (chaine == null) return null; String temp = ""; for (int i=0; i < chaine.length(); i++) { if (! ((chaine.charAt(i) < 48 && chaine.charAt(i) != 32) || chaine.charAt(i) == 255 || chaine.charAt(i) == 208 || chaine.charAt(i) == 209 || chaine.charAt(i) == 215 || chaine.charAt(i) == 216 || (chaine.charAt(i) < 65 && chaine.charAt(i) > 57) || (chaine.charAt(i) < 192 && chaine.charAt(i) > 122) || (chaine.charAt(i) < 65 && chaine.charAt(i) > 57))) { temp = temp + chaine.charAt(i); } } temp = temp.toUpperCase(); temp = temp.replace('Ý', 'Y'); temp = temp.replaceAll("Ù | Ú | Û | Ü", "U"); temp = temp.replaceAll("Ò | Ó | Ô | Õ | Ö", "O"); temp = temp.replaceAll("Ì | Í | Î | Ï", "I"); temp = temp.replaceAll("È | É | Ê | Ë", "E"); temp = temp.replace('Ç', 'C'); temp = temp.replaceAll("À | Á | Â | Ã | Ä | Å | Æ", "A"); return temp; }
Je progresse mais ce n'est pas terminé. Moi qui ne voulais pas développer la fonction ... :P
J'ai un peu le même problème que toi : je suis en train de développer un petit générateur de code HTML et les caractère à accent etc ne sont pas tolérés.
Je souhaiterais les convertir.
Sur
http://www.chez.com/starshoot/html/caractere.htm
ils nous expliquent que c'est à partir du code ascii>128 que les caractères deviennent "spéciaux".
Mais avec l'exemple de la faq pour récupérer le code ascii d'un caractère, le code que je récupère ne correspond pas à ce qui est indiqué dans le tableau...
--> le caractère é par exemple retourne 63 au lieu de 233. 8O
Quelqu'un peut m'éxpliquer comment je peux récupérer le code de mes char dans la bonne base? :oops:
Désolé de vous avoir embêté :
répond à ma question :oops:Code:
1
2
3 String chaine = "é"; System.out.println((int) chaine.charAt(0));