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 :

[Stratégie]Calculer une expression partant d'un String


Sujet :

Langage Java

  1. #1
    Membre habitué Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 138
    Points
    138
    Par défaut [Stratégie]Calculer une expression partant d'un String
    Bonjour,

    je récupère une expression composée de 1 2 3 4 5 6 7 8 9 0 . + - * / ( ) sous la forme d'un String, je voulais savoir si il existait un moyen simple de calculer l'expression, sans faire tout un parsage de l'expression, puisqu'elle est deja sous une forme de calcul connue de Java...

  2. #2
    Membre éprouvé
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Points : 1 166
    Points
    1 166
    Par défaut
    Sachant que des développeurs s'acharnent à programmer des parser d'expression mathématiques, ça m'étonnerait que ce soit possible sans passer par là. Sinon, pourquoi le feraient-ils ?
    Mais il existe déjà des parser. Tu n'as pas besoin d'en développer un si c'est ce qui te gène.

    Nas'

  3. #3
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Dommage,

    A mon avis il faut développer un mini analysateur syntaxique. Mais c'est pas trop compliqué...

  4. #4
    Membre habitué Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 138
    Points
    138
    Par défaut
    OK, je me disais aussi... des parsers existent dans les API Java ou il faut chercher ailleurs ?

  5. #5
    Membre habitué Avatar de Sarrus
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mai 2005
    Messages : 180
    Points : 138
    Points
    138
    Par défaut
    car je pars d'un StringTokenizer qui découpe mon expression et la range dans une liste... Apres le probleme c'est de détecter déjà les ( ), puis les * et / etc...

  6. #6
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Je pense qu'il faut chercher ailleurs.

  7. #7
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    BeanShell peut te faire ca trés bien

    genre


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public Number eval(String expr) throws ClassCastException
    {
       Object result = new bsh.Interpreter().eval(expr);
       return (Number)result;
    }
    JBusyComponent, une API pour rendre occupé un composant swing.
    SCJP Java 6.0 (90% pass score)

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Citation Envoyé par divxdede
    BeanShell peut te faire ca trés bien

    genre


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public Number eval(String expr) throws ClassCastException
    {
       Object result = new bsh.Interpreter().eval(expr);
       return (Number)result;
    }
    Eh bien je ne connaissais pas du tout cet outil la... Ca peut etre interessant de le noter quelque part dans sa memoire

    Sun Certified Business Component Developer
    Sun Certified Java Programmer
    --
    The definitive toolbox for GWT applications: gwt-toolbox
    My blog about Java and JEE: Benjamin's Blog

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/10/2015, 14h00
  2. Interpreter et calculer une expression
    Par kodo dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 25/03/2014, 10h39
  3. Réponses: 5
    Dernier message: 18/03/2011, 15h37
  4. [calcul] pb avec la syntaxe d'une expression calulée
    Par gloogloo dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 29/06/2005, 17h14
  5. [String] rendre une expression reguliere insensible à la case
    Par chimical dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/05/2004, 11h38

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