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

API standards et tierces Java Discussion :

Calculer à partir d'un string


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 95
    Par défaut Calculer à partir d'un string
    Bonjour,

    Je suis à la recherche d'une bibliothèque gratuite permettant de calculer une expression à partir d'un string :

    calculer("(1+2)*(2+1)"); // retourne 9

    J'en ai trouvé mais soit elles sont payantes, soit elles ne gèrent pas les parenthèses ou encore elles ne gèrent pas les float.

    Pouvez-vous m'aider ?

    Merci d'avance !

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Pourquoi ne pas utiliser les langages dynamiques comme Groovy ?
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 335
    Par défaut
    Sinon, il faut t'écrire ton compilateur d'expression, soit à la main, soit avec ANTLR, (ou javaCC moins utilisé maintenant)

    http://www.jguru.com/faq/view.jsp?EID=480122

    C'est sûr c'est un gros morceau, ma réponse n'est pas simple, mais c'est la bonne façon de faire "amha".

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Sinon à partir de java 6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import javax.script.ScriptEngineManager;
    import javax.script.ScriptEngine;
     
    public class Test {
      public static void main(String[] args) throws Exception{
        ScriptEngineManager mgr = new ScriptEngineManager();
        ScriptEngine engine = mgr.getEngineByName("JavaScript");
        String foo = "40+2";
        System.out.println(engine.eval(foo));
        } 
    }

    Par contre ça ne gère pas trop trop les expressions complexes de souvenir

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 95
    Par défaut
    Bonjour et merci beaucoup pour vos réponses,

    En fait j'ai finalement utilisé http://faculty.kfupm.edu.sa/misac/hussam/ qui fonctionne très bien et qui inclue tout un tas d'opération (ABS, LOG etc.).

    Seul hic, il faut encadrer l'expression de parenthèse (de même qu'eval en java 6). Rien de bien gênant mais c'est bon à savoir.

Discussions similaires

  1. Executer un calcul à partir d'un string
    Par gnstian dans le forum VBA Access
    Réponses: 6
    Dernier message: 20/10/2011, 11h59
  2. Calcul à partir des résultats d'une requète
    Par Sendo dans le forum Access
    Réponses: 1
    Dernier message: 29/09/2005, 17h46
  3. [Info]Créer un tableau de String à partir d'autres String
    Par Nasky dans le forum Collection et Stream
    Réponses: 21
    Dernier message: 06/07/2005, 11h46
  4. Récupérer des floats à partir d'une string
    Par hamster dans le forum SL & STL
    Réponses: 8
    Dernier message: 09/06/2005, 08h10
  5. [DOM] Comment creer un DOM à partir d une String
    Par RolandB dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 24/04/2005, 18h11

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