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

Langage Java Discussion :

Split et autre méthode sur "["


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut Split et autre méthode sur "["
    Bonjour

    voilà mon problème, j'ai une String dans laquelle je souhaite enlever les caractère "[" de la forme : [[hfqlhfqlhfpqdmfqh

    J'ai essayer avec un

    String exemple = "[[jsdmkljfmsldkjfs";
    String str[] = exemple.split("[");
    ou encore
    exemple = exemple.replaceAll("[","");

    mais rien à faire il me catch une exception InvocationTargetException

    J'ai lu que [ faisait partie des regex j'ai essayé avec \[ , ([), [[] mais rien a faire il me catch toujours la même expression à chaque fois !!

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    si tu veux faire un split:

    si tu veux juste remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maChaine = maChaine.replaceAll("\\[","");

  3. #3
    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,

    Pour protéger un caractère, il faut utiliser un antislash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exemple = exemple.replaceAll("\\[","");
    Sinon, on peut également utiliser la méthode Pattern.quote() qui permet de protéger une chaine quelconque...


    A noter enfin que tu peux utiliser replace() qui n'utilise pas de regexp en entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exemple = exemple.replace("[","");
    a++

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    Merci beaucoup à vous

    C'est le double \\ que je connaissais pas !!

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Le double sert à dire au compilateur de regex que le 2eme antislash n'est pas un caractère d’échappement.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    druzy: non, le double \\ ne concerne que le compilateur java. Le compilateur de regex, ne vois que un seul \ arriver. Si tu veux échapper un \ avec le compilateur regexp, tu dois le doubler. Et tout dois doubler chaque \ aussi pour le compilateur java, ce qui amène à quatre: \\\\ pour dire au final à la regexp "j'ai un anti slash"

  7. #7
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2010
    Messages : 38
    Par défaut une methode classic
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    String exemple = "[[jsdmkljfmsldkjfs";
    String resultat="";
     
    for(int i=0;i<exemple.length();i++){
    if(exemple.charAt(i).equals('[')){
    }
    else{
    resultat=resultat+exemple.chart(i);
    }
     
    System.out.println(resulat);
    Bon chance !!!

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    akharraz: ce code n'est pas un classique, loin de là, c'est un code affreux qui va générer pour cette opération simple, pas moins de 48 objets différents. Les performance de ce code sont catastrophique. String propose une méthode de remplacement, autant l'utiliser directement.

    edit: et en plus ça compile même pas vu les erreurs.

Discussions similaires

  1. [XL-2003] Fonction split ou autre sur chaine de caractere
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/02/2015, 01h38
  2. Réponses: 13
    Dernier message: 17/11/2009, 15h00
  3. Réponses: 6
    Dernier message: 05/03/2008, 20h53
  4. Prog de citation sur forum [QUOTE]
    Par oxyde356 dans le forum Langage
    Réponses: 2
    Dernier message: 22/07/2006, 12h03

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