44 votes

Supprimer les accents de string

Y a-t-il un moyen dans Android qui (à ma connaissance) n’a pas java.text.Normalizer, pour supprimer tout accent d’une chaîne. Par exemple, « éàù » devient « eau ».

J’aimerais éviter d’analyser la chaîne pour vérifier chaque caractère si possible!

99voto

Guillaume Points 10121

`` est là dans Android (sur les dernières versions de toute façon). Vous pouvez l’utiliser.

ÉDITER Pour référence, voici comment utiliser `` :

(collé à partir du lien dans les commentaires ci-dessous)

8voto

Juarez Schulz Points 41

J’ai adapté la solution de Rabi à mes besoins, j’espère que cela aidera quelqu’un:

5voto

Rabi Points 1757

Ce n’est probablement pas la solution la plus efficace mais elle fera l’affaire et elle fonctionne dans toutes les versions d’Android:

3voto

ntninja Points 414

Bien que la réponse de Guillaume fonctionne, elle supprime tous les caractères non ASCII de la chaîne. Si vous souhaitez les conserver, essayez ce code (où `` est la chaîne à simplifier) :

0voto

mjmarsh Points 5858

Tous les caractères de graphique accentués se trouvent dans le jeu de caractères ASCII étendu, avec des valeurs décimales supérieures à 127. Vous pouvez donc énumérer tous les caractères d’une chaîne et si la valeur du code de caractère décimal est supérieure à 127, mappez-la à l’équivalent souhaité. Il n’y a pas de moyen facile de mapper les caractères accentués aux homologues non accentués - vous devrez garder une sorte de carte en mémoire pour mapper les codes décimaux étendus aux caractères non accentués.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X