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 :

traduire une chaine de caractères en booléen


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut traduire une chaine de caractères en booléen
    Bonjour,
    j'ai un petit problème.

    A partir d'un fichier xml, je récupère une chaine de caractère de type :
    true & true ( false | true & false )

    Je voudrais pouvoir interpréter simplement cette chaine. Est il possible de la traduire en expression booléenne ?

    merci,

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Possible oui.

    Faisable en quelques lignes non.

    Il va falloir écrire ton propre parseur et ton propre évaluateur pour le langage à expressions que tu cherches à lire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    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
    Il va falloir que tu sépare les "true" et "false" et pour les transformer en boolean, tu as le constructeur de la classe Boolean.

  4. #4
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut
    Citation Envoyé par druzy Voir le message
    Il va falloir que tu sépare les "true" et "false" et pour les transformer en boolean, tu as le constructeur de la classe Boolean.
    traduire les true et false en booléen ne me pose pas de problème. Mon souci réside principalement dans l'interprétation des opérateurs & et | et dans l'ordre dans lequel ils doivent être pris en compte.

    J'ai vu qu'il existait une API JEXL, puis je m'en servir pour cela ?

    Sinon je pense que je suis obliger de parser ma chaine et de faire une méthode qui va traiter de façon récursive la première chaine pour remplacer :
    true & false par false
    true | false par true
    cela en fonction des priorités de (), &, |.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par tit_v Voir le message
    J'ai vu qu'il existait une API JEXL, puis je m'en servir pour cela ?
    Ben c'est à dire que JEXL et les autres langages d'expression de ce genre utilisent plutôt || et && comme opérateurs. Pas | et &.
    Si tu es libre de changer de syntaxe, en effet JEXL est nettement plus pratique. Je suis pas bien fin, j'aurais peut-être dû commencer par là.

    Je sais pas trop si JEXL donne une priorité à | ou &.

    Ah, et je précise qu'un truc comme true && true ( false || true && false ) ne passerait pas : il n'y a pas d'opérateur entre le second true et la parenthèse ouvrante.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut
    Citation Envoyé par thelvin Voir le message
    true && true ( false || true && false ) ne passerait pas : il n'y a pas d'opérateur entre le second true et la parenthèse ouvrante.
    Oui, j'ai juste oublié de le mettre. J'essaye cette solution et je te dis ça marche,
    Merci.

Discussions similaires

  1. [LibreOffice][Tableur] [Macro] je souhaite traduire une chaine de caractère d'un calcul
    Par madvic dans le forum OpenOffice & LibreOffice
    Réponses: 7
    Dernier message: 07/11/2014, 15h26
  2. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  3. Réponses: 9
    Dernier message: 17/01/2003, 11h45
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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