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 :

Reconnaitre le caractère |


Sujet :

Langage Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Par défaut Reconnaitre le caractère |
    Bonjour à tous!

    Une petite question rapide, mais qui me pose problème : je cherche à parser une String qui contient le caractère '|' (pipe) par un simple machaine.split("|");
    Malheureusement, java ne reconnaît pas ce caractère. Est-ce que quelqu'un sait comment on peut l'utiliser?

    P.S. J'ai essayé /|, mais ça ne marche pas non plus...

  2. #2
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    et \| ?

    quoiqu'il est probable que ce soit \\|

    cf ici si tu ne sais pas pourquoi

  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,


    Le problème ne vient pas de Java mais des expressions régulières utilisées par split() et qui interprète le |, et il faut bien le protéger mais avec un \ :
    Mais le plus propre serait d'utiliser Pattern.quote() qui protège un chaine dans sa totalité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    machaine.split(Pattern.quote("|"))
    a++

  4. #4
    Membre chevronné Avatar de Bezout
    Profil pro
    Développement
    Inscrit en
    Septembre 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut


    Apparu avec quel JDK le Pattern.quote car en 1.4.2 je l'ai pas ?

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    Malheureusement pour toi avec Java 1.5 :/

  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
    Apparut dans Java 1.5... mais cette méthode peut facilement être backporté sur du 1.4.2 (grosso-modo elle se contente d'entourer la chaine par \Q et \E) :

    Comment empêcher les expressions régulières d'interpréter une sous-chaînes ?


    A noter également l'existence de Matcher.quoteReplacement() (1.5 aussi) qui permet de faire une protection similaire pour les remplacements via Matcher.appendReplacement()...

    a++

  7. #7
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    Citation Envoyé par Bezout Voir le message


    Apparu avec quel JDK le Pattern.quote car en 1.4.2 je l'ai pas ?
    Depuis le 1.5 -ici

    [edit] grilled [/edit]
    @+

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Par défaut
    Re salut!

    Merci à tous pour votre mobilisation et votre rapidité!!
    Je confirme que ce problème est intervenu sous java1.6 (surement à partir de 1.5 d'après ce que vous indiquez).

    Je confirme aussi que
    et que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    machaine.split(Pattern.quote("|"))
    Ca fonctionne bien.
    Je vais donc utiliser la seconde, puisque c'est "plus propre" !
    En tout cas, j'aurais appris un truc aujourd'hui!

    Merci encore et a bientot!
    GzG

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/06/2010, 17h02
  2. [antlr] reconnaitre une chainte de caractère
    Par cdm1024 dans le forum EDI et Outils pour Java
    Réponses: 0
    Dernier message: 01/08/2009, 21h46
  3. Réponses: 2
    Dernier message: 12/09/2007, 18h52
  4. Adresse des polices de caractères dans la RAM video ?
    Par Anonymous dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 27/05/2002, 18h29
  5. Réponses: 3
    Dernier message: 09/05/2002, 02h39

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