IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

[String] Comment supprimer les accents [FAQ]


Sujet :

Collection et Stream Java

  1. #1
    iuz
    iuz est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    avril 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2003
    Messages : 114
    Points : 110
    Points
    110
    Par défaut [String] Comment supprimer les accents
    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.

  2. #2
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : novembre 2003
    Messages : 354
    Points : 294
    Points
    294
    Par défaut
    Bonjour,

    J'avais fait une méthode à voir là :
    http://www.developpez.net/forums/vie...t=caract%E8res

    a+
    Snoop

  3. #3
    Membre régulier
    Homme Profil pro
    responsable technique
    Inscrit en
    novembre 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable technique

    Informations forums :
    Inscription : novembre 2002
    Messages : 99
    Points : 89
    Points
    89
    Par défaut
    tu peux par exemple utiliser la méthode replace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    taString.replace("é", "e");
    taString.replace("è", "e");
    ...
    Mais il y a sans doute d'autres façons de faire...

  4. #4
    iuz
    iuz est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    avril 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2003
    Messages : 114
    Points : 110
    Points
    110
    Par défaut
    Merci pour vos réponses, mais je crois que je n'ai pas été assez précis . 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

  5. #5
    Membre actif Avatar de snoop
    Profil pro
    Inscrit en
    novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : novembre 2003
    Messages : 354
    Points : 294
    Points
    294
    Par défaut
    Et en utilisant les expressions régulières...
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    result = result.replaceAll("(-|'|:|_|!|?|;|,|§|(|))", "");
    .....
    Snoop

  6. #6
    iuz
    iuz est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    avril 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2003
    Messages : 114
    Points : 110
    Points
    110
    Par défaut
    Ce que j'ai fait c'est :

    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
    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;
      }
    Mais le problème c'est qu'il reste tous les caractères unicode. Et là je ne parviens pas à les enlever.

    Je progresse mais ce n'est pas terminé. Moi qui ne voulais pas développer la fonction ...

  7. #7
    Futur Membre du Club
    Inscrit en
    février 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : février 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    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.
    Quelqu'un peut m'éxpliquer comment je peux récupérer le code de mes char dans la bonne base?

  8. #8
    Futur Membre du Club
    Inscrit en
    février 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : février 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Désolé de vous avoir embêté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String chaine = "é";
    System.out.println((int) chaine.charAt(0));
    répond à ma question

Discussions similaires

  1. comment supprimer les accents avec un onKeyPress
    Par thor76160 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 18/03/2010, 17h05
  2. Comment supprimer les sauts de ligne dans un String ?
    Par pathfinder06 dans le forum Langage
    Réponses: 5
    Dernier message: 28/02/2008, 11h40
  3. Réponses: 1
    Dernier message: 11/01/2006, 11h58
  4. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo