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

avec Java Discussion :

Effacer les espaces dans une chaîne de caractères


Sujet :

avec Java

  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut Effacer les espaces dans une chaîne de caractères
    Bonjour ,
    Voila je voudrait en fait tranbformer une chaine de caractère de facon à supprimer les esapces à "l'intérieur" de la chaine et en meme temps en option ( ) faire la tranformation suivante:

    j'ai un numéro de telephone du format 33(0)6 XX XX XX XX et je voulais obtenir 06XXXXXXXX.

    Merci pour votre aide.

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Un truc du genre?

    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 remove(String s, char toRemove) {
            StringBuilder b = new StringBuilder(s.length());
     
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
     
                if (c != toRemove) {
                    b.append(c);
                }
            }
     
            return b.toString();
    }
     
    ...
     
    String s = "33(0)6 XX XX XX XX";
     
    if(s.startWith("33")) {
      s = s.substring(2);
    }
     
    s = remove(s, ' ');
    s = remove(s, '(');
    s = remove(s, ')');
    Pas optimal, mais à toi de faire les modifs qui te semblent judicieuses

  3. #3
    Membre expérimenté Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Par défaut
    Voici une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Test {
     
    	public static void main(String[] args) {
    		String s1 = "33(0)6 XX XX XX XX";
     
    		String noSpace = s1.replaceAll(" ", "");
    		System.out.println("NO SPACE:\t" + noSpace);
     
    		String format = "0" + noSpace.substring(5, noSpace.length());
    		System.out.println("FORMAT:\t\t" + format);
    	}
    }
    Si tu veux bien te perfectionner il faut lire les tutoriels et cours de formation pour apprendre Java : http://java.developpez.com/cours/
    Par exemple le cours Java de jmdoudou est vraiment au top : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    La méthode replaceAll() de la classe String me semble tout indiquée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String number = "33(0)6 XX XX XX XX";
    String formattedNumber = number.replaceAll("33\\(0\\)", "0").replaceAll(" ", "");

    [edit] grilled [/edit]
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    Merci pour vos réponse mais avec replaceAll j'ai l'erreur suivante :


    La méthode replaceAll(String, String) est indéfinie pour le type String

  6. #6
    Membre expérimenté Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Par défaut
    Avec quelle version de Java travailles-tu ?

    [EDIT] la méthode replaceAll est apparue à la version 1.4 de java...

  7. #7
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Tu travailles avec quelle version de java?...

    La méthode replaceAll(String, String) est définie pour le type String depuis Java 1.4...

    [Edit] Encore grillé...
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  8. #8
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    Merci pr les réponses
    J'ai la 1.3.1 !!!!
    y'a pas un équivalent de replaceAll pr cette version?

  9. #9
    Membre expérimenté Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Par défaut
    La méthode remove décrite par Pill_S me semble être une bonne alternative pour supprimer tous les espaces...
    Citation Envoyé par Pill_S
    Un truc du genre?

    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 remove(String s, char toRemove) {
            StringBuilder b = new StringBuilder(s.length());
     
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
     
                if (c != toRemove) {
                    b.append(c);
                }
            }
     
            return b.toString();
    }
     
    ...
     
    String s = "33(0)6 XX XX XX XX";
     
    if(s.startWith("33")) {
      s = s.substring(2);
    }
     
    s = remove(s, ' ');
    s = remove(s, '(');
    s = remove(s, ')');
    Pas optimal, mais à toi de faire les modifs qui te semblent judicieuses

  10. #10
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    Mais il n'accepte pas le StringBuilder
    Il me dit :
    StringBuilder ne peut pas être résolu en type

  11. #11
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    StringBuilder n'existe que depuis Java 5, avant il faut utiliser StringBuffer.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  12. #12
    Membre expérimenté Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Par défaut
    Essaie ça alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static String remove(String s, char toRemove) {
            String result = "";
            for (int i=0; i<s.length(); i++) 
                if (s.charAt(i) != toRemove)
                    result = result + s.charAt(i);
            return result;
    }

  13. #13
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par aJavaDeveloper
    Essaie ça alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static String remove(String s, char toRemove) {
            String result = "";
            for (int i=0; i<s.length(); i++) 
                if (s.charAt(i) != toRemove)
                    result = result + s.charAt(i);
            return result;
    }
    Il ne faut pas concaténer un String dans une boucle sous peine de performances désastreuses
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  14. #14
    Membre expérimenté Avatar de aJavaDeveloper
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 248
    Par défaut
    sous peine de performances désastreuses
    On parle ici quand même que d'un numéro de téléphone.
    Cela représente une petite quinzaine de concaténations...

    [EDIT] Toutefois, je reconnais que le y@m's a raison...

  15. #15
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    je teste et je vous tiens au courant
    Merci

  16. #16
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par aJavaDeveloper
    On parle ici quand même que d'un numéro de téléphone.
    Cela représente une petite quinzaine de concaténations...
    Et si tu dois effectuer ce traitement sur des numéros issus d'une base de données contenant plusieurs centaines (ou plus) d'enregistrements ?

    Même dans le cas où la différence de performances ne se fait pas ressentir, il n'y a aucune raison valable pour mal coder .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  17. #17
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 43
    Par défaut
    j'ai mi stringbuffer à la place de stringbuilder et ca marche.
    Merci bcp pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer les espaces dans une chaîne de caractère
    Par Med_be dans le forum Débuter
    Réponses: 7
    Dernier message: 15/11/2010, 04h17
  2. Réponses: 16
    Dernier message: 19/11/2008, 13h02
  3. [XPATH] supprimer les espaces dans une chaîne
    Par joeyd dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 17/10/2007, 16h56
  4. Supprimer les espaces dans une chaine de caractères
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 23/07/2007, 23h24
  5. supprimer les espaces dans une chaîne de caratères.
    Par Empty_body dans le forum Langage
    Réponses: 2
    Dernier message: 12/09/2006, 19h43

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