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 :

enlever les espaces blancs d une chaines de caracteres


Sujet :

avec Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut enlever les espaces blancs d une chaines de caracteres
    Bonjour je reçois cette valeur de type String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String toto =300 000 000;
    j aimerai supprimer les espaces pour ensuite manipuler cette string
    lla fonction trim je correspond pas
    auriez-vous une iee?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,
    Regarde la méthode replaceAll de la classe String

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maChaine = maChaine.replaceAll("\\[" "\\]", "");
    remplacer les espaces blancs par rien?

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Par défaut
    Bonjour,

    trim supprime les eventuels espaces qui serait au debut ou a lafin de la chaine.

    Cordialement.

    Dan

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Mobistar Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maChaine = maChaine.replaceAll("\\[" "\\]", "");
    remplacer les espaces blancs par rien?
    Salut,
    Au temps pour moi, utilise plutôt replace c'est plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maChaine = maChaine.replace(" ","");
    Tschau

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par George7 Voir le message
    Au temps pour moi, utilise plutôt replace c'est plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maChaine = maChaine.replace(" ","");
    replaceAll() fonctionne aussi, c'est juste que le code donné est incorrect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maChaine = maChaine.replaceAll(" ","");
    a++

  7. #7
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    Tu a la function split aussi qui peut etre pratique ^^

    si tu fais quelque chose comme sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //tebdate est le nom du string dans l'exemple
    tabdate=date.split("\\D");
    sa te decoupe ton string a tout caractere n'etant pas un chiffre et te le replace a la suite dans un autre string (date ici dans l'exemple)

    ps si tu mets split("\\d") sa te fais pareil mais sa t'enleve tout ce qui est chiffre a l'inverse de l'autre

  8. #8
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Citation Envoyé par €IN-LESER Voir le message
    Tu a la function split aussi qui peut etre pratique ^^

    si tu fais quelque chose comme sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //tebdate est le nom du string dans l'exemple
    tabdate=date.split("\\D");
    sa te decoupe ton string a tout caractere n'etant pas un chiffre et te le replace a la suite dans un autre string (date ici dans l'exemple)

    ps si tu mets split("\\d") sa te fais pareil mais sa t'enleve tout ce qui est chiffre a l'inverse de l'autre
    Je vois pas en quoi la fonction split lui permettrait de supprimer les blancs d'une chaîne ... (ou alors j'ai pas mal regressé en java ...)

  9. #9
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    split lui enlevera automatiquement tous les caracteres (dont les vides ) qui ne sont pas des chiffre a condition d'ultiliser le ("\\D")
    sur et certain je m'en suis servis plus d'une fois

    je ne pretends pas en savoir autemps que toi en java mais la je suis plustot sur de moi

  10. #10
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par €IN-LESER Voir le message
    split lui enlevera automatiquement tous les caracteres (dont les vides ) qui ne sont pas des chiffre a condition d'ultiliser le ("\\D")
    sur et certain je m'en suis servis plus d'une fois
    Mais quel intérêt par rapport à un replace/replaceAll dans ce cas précis ?

    Autant utilisé les méthodes pour ce à quoi elle sont conçus...

    a++

  11. #11
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Citation Envoyé par €IN-LESER Voir le message
    split lui enlevera automatiquement tous les caracteres (dont les vides ) qui ne sont pas des chiffre a condition d'ultiliser le ("\\D")
    sur et certain je m'en suis servis plus d'une fois

    je ne pretends pas en savoir autemps que toi en java mais la je suis plustot sur de moi
    euh ben du coup il se retrouvera avec plusieurs chaines non ????

  12. #12
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    non une seule chaine qu'il stoque dans un string basique

    en fait sa lui crera un string egal a celui de depart mais ayant garde uniquement les elements qui sont des chiffres

    et comme dit en remplacant ("\\D") par ("\\d") sa lui enlevera toutes les elements qui sont pas des caractheres

    j'ai trouve sa tres util entre autre si tu a une chaine qui peut varier entre
    26/01/2008 et 26 01 2008 car la meme commande lui donnera le resiltat shouaité
    a savoir 26012008 par exemple ici

    il y a certainement d'autres methodes mais celle ci me parais parmis les plus simples ^^

  13. #13
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    euh ..... j'ai beau chercher dans la doc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      String[] 	split(String regex)
              Splits this string around matches of the given regular expression.
     String[] 	split(String regex, int limit)
              Splits this string around matches of the given regular expression.
    Ca a changé en 1.5 (que je ne connais pas) ??

    En tout cas, si ca fonctionne tel que tu l'as décrit, je suis bluffé et perplexe ( et tres tres décu du java par la même occasion, ca va à l'encontre de ma conception de ses fonctions)

    [ ou alors j'ai raté un gros truc]

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par €IN-LESER Voir le message
    non une seule chaine qu'il stoque dans un string basique

    en fait sa lui crera un string egal a celui de depart mais ayant garde uniquement les elements qui sont des chiffres

    et comme dit en remplacant ("\\D") par ("\\d") sa lui enlevera toutes les elements qui sont pas des caractheres

    j'ai trouve sa tres util entre autre si tu a une chaine qui peut varier entre
    26/01/2008 et 26 01 2008 car la meme commande lui donnera le resiltat shouaité
    a savoir 26012008 par exemple ici

    il y a certainement d'autres methodes mais celle ci me parais parmis les plus simples ^^
    Attends split sert à découper une chaine, ici il veut seulement la chaine sans les espaces, pas un tableau avec tout ce qu'il y a entre les espaces, donc replace ou replaceAll est tout à fait indiqué

  15. #15
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    €IN-LESER, ta méthode renvoi un tableau {26, 01, 2008} et ce aussi bien pour "26 01 2008" et "26/01/2008" donc c'est très bien si on ne connait pas le séparateur. Mais il faut ensuite reconcaténer les chaînes du tableau pour en faire une seule. Cela me paraît superflux puisqu'ici il demande de supprimer les espaces uniquement.

    Le mieu dans ce cas précis est bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maChaine = maChaine.replaceAll(" ","");

  16. #16
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Par défaut
    tu a raison dans le sens ou sa renvois un tableau (qui est vite concatene ^^)
    mais il est vrai que c'est le plus util quand tu risque d'avoir des separateurs differents (comme lors d'une saisie libre d'un user)
    Je m'avous vaincus
    Comme dit precedament, je n'ai pas la pretention d'en conaitre autemps que vous sur le sujet de la prog et ne voulais qu'aider un peux
    Merci en tout cas pour vos mesages ^^
    je testerais l'autre methode la prochaine fois
    ++

  17. #17
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Ta méthode a son utilité également, et je ne la connaissais pas.
    Je n'ai pas la prétention d'en connaitre plus que toi, on ne fait qu'exposer nos méthodes

    Pour éviter les saisies libres à l'utilisateur, il peut être intéressant d'utiliser un JFormattedTextField

  18. #18
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    C'est possible aussi avec split() mais ce n'est pas le but premier.


    Pour remplacer/supprimer des chaines par d'autres, replaceAll() est nettement mieux adapté...

    Par exemple pour supprimer tout ce qui n'est pas un chiffre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine = chaine.replaceAll("\\D", "");
    On peut difficilement faire plus simple...


    a++

  19. #19
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Sinon en utilisant l'api commons lang, il existe une methode dédiée à ça :

    StringUtils.deleteWhiteSpace(String)

    ça permettra peut être de ne pas réinventer la poudre

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    merci je vais essayer.

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

Discussions similaires

  1. Enlever les balises HTML d'une chaine de caractère
    Par okoweb dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2011, 17h19
  2. Réponses: 4
    Dernier message: 29/08/2008, 11h53
  3. [RegEx] Enlever les premiers zéros d'une chaine
    Par max-mag dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2007, 19h17
  4. Réponses: 3
    Dernier message: 31/01/2005, 23h18

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