Salut,
Envoyé par
xduris
- Suppression des espaces (ok j'utilise trim())
Ce n'est pas clair.
Déjà parles du seulement des espaces (caractère \u0020), ou des blancs (espaces, espaces insécables, tabulations, ...) ?
Ensuite veux-tu uniquement supprimer les espaces/blancs en début et fin de chaîne (ce que fait trim()) ou tout les espaces/blancs de la chaîne.
Pour supprimer tous les espaces :
str = str.replaceAll(" ", "");
Pour supprimer tous les blancs :
str = str.replaceAll("\\s", "");
Mais dans tous les cas cela devient inutile par rapport à ta 4ième règle qui supprimera tout ce qui ne correspond pas à une lettre ou un chiffre...
Envoyé par
xduris
- Remplacement des caractères accentués par leur équivalent (???)
- Mise en majuscule de la chaine de caractère (ok toUpperCase() qui gère du même coup peut être aussi la règle précédente)
toUpperCase() ne supprime pas les accents (c'est facile à vérifier ).
Pour cela il y a plusieurs solutions (plus ou moins simple, et plus ou moins standard) selon la version de Java que tu utilises. Je te laisse consulter la FAQ : http://java.developpez.com/faq/java/...primmer_accent
Un peu de recherche n'aurait pas fait de mal...
Envoyé par
xduris
- Suppression des caractères qui n'appartiennent pas à l'expression régulière suivante [0-9A-Z] (???)
Comme l'a indiqué baos, le ^ permet la négation :
str = str.replaceAll("[^0-9A-Z]", "");
Envoyé par
xduris
- Suppression des caractères en double qui se suivent (AA->A jusqu'à ZZ->Z)
Cela peut se faire assez simplement avec l'expression suivante :
str = str.replaceAll("(.)\\1+", "$1");
Explication :
- (.) : Le point désigne un caractère quelconque, et les parenthèse permettent de définir un groupe.
- \\1+ : Le \\1 désigne un élément identique au groupe numéro 1, c'est à dire le point précédent dans notre cas : bref deux lettres identiques quelconques qui se suivent. Le + indique qu'on peut avoir une ou plusieurs fois le \\1, et donc en tout entre 2 à plusieurs lettres identiques.
Enfin on remplace le tout par $1, qui correspond en fait au groupe 1, donc la lettre qui est répété dans notre cas...
a++
Partager