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 :

Interpreter une chaine de caractere


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut Interpreter une chaine de caractere
    Bonsoir tout le monde,
    j'ai besoin de votre aide, sur le sujet suivant :

    au cours d'un projet d'ecole, j'ai besoin de récuperer une chaine de caractere representant une operation et de calculer le resultat de cette operation.
    Cette opération peut être simple comme : 9+8
    mais egalement -3*9-v+b
    v et b etant des noms de variables.

    Donc j'ai d'abord pensé à un StringTokenizer, avec comme delimiteur, un operateur (+, -, *, /) mais le premier probleme qui arrive, c'est pour un nombre negatif, exemple : -7-9.
    Même si il y a moyen en verifiant, si le premier caractere de la chaine est '-'.

    Mais bon le probleme qui me pose le plus de difficulté, est le fait que l'operation peut être "multiple" (plusieurs operations) et pouvant avoir des noms de variable ex : -9*8+3+d

    Existe-t-il une API, permettant de convertir une chaine de caractere representant une operation en resultat de l'operation.

    Désolé, si c'est peu compréhensible, mais n'hesitez pas à demander des precisions.

    Merci pour tout.

  2. #2
    Membre chevronné Avatar de T`lash
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Septembre 2007
    Messages : 381
    Par défaut
    Tu peux utiliser les expressions rationnelles avec un motif représentant l'opération. Ce n'est pas trop dur à faire.

    Sinon tu peux écrire un analyseur syntaxique qui va lire ta chaîne caractère par caractère et lancer une action à chaque élément complet qu'il rencontre.

    Si les opérations sont simples comme celles que tu as données en exemple, la première solution (Matcher et Pattern) sera suffisante, mais si tu dois avoir des formules complexes il te faudra un analyseur.

    Par contre je ne sais pas s'il y a des API qui peuvent te faire ça toutes seules une fois correctement configurées. Cela serait étrange que ça n'existe pas.

  3. #3
    Membre Expert
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Par défaut
    Bonjour,
    je te conseille l'API JEP qui permet de parser et d'evaluer des expressiosn mathematiques.

    Angelo

  4. #4
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 679
    Par défaut
    Sinon tu pourrais peut-être utiliser l'API script introduite en Java 1.6 .
    Sur le JRE Sun tu as accès à du JavaScript. Par conte les possibilités vont bien au dela de l'expression mathématique simple, a voir si c'est génant pour toi ou non.

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

    Informations professionnelles :
    Activité : Développement

    Informations forums :
    Inscription : Septembre 2003
    Messages : 234
    Par défaut
    Et tu crois vraiment que ton prof attend simplement que tu balances ta chaine dans une API qui va faire tout le boulot pour toi ?

    Ce qui interesse ton prof c'est l'algo qui permet de résoudre ce probleme. Pas de savoir quelle API peut le faire à ta place !

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut
    Citation Envoyé par Bezout Voir le message
    Et tu crois vraiment que ton prof attend simplement que tu balances ta chaine dans une API qui va faire tout le boulot pour toi ?

    Ce qui interesse ton prof c'est l'algo qui permet de résoudre ce probleme. Pas de savoir quelle API peut le faire à ta place !
    Non, mon prof n'attend pas que je mette la chaine dans une API qui va faire tout le boulot.

    Ce que je demande là, c'est uniquement une partie d'un projet beaucoup plus vaste!

    Merci pour toutes vos réponses, je regarde à ca aujourd'hui, un probleme m'est venu dans la nuit ( j'y reflechi même en dormant ^^ ) il faut analyser toute la chaîne pour voir si il n'y a pas une multiplication ou division, qui est prioritaire.

    Mais bon je vais resoudre les pb petit à petit

    Merci pour tout.

  7. #7
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 679
    Par défaut
    JEP comme Javascript pouront gérer la priorité des opération.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut
    Je suis en train d'y regarder, je pense que je vais trouver mon affaire

    Merci pour tout.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut
    Voilà le probleme est resolu, avec l'API JEP.
    Merci à tout le monde, d'avoir consacré du temps à mon probléme.
    Bonne continuation

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. Réponses: 5
    Dernier message: 21/07/2004, 19h34
  3. Extraire un nom d'une chaine de caractere
    Par iamspacy dans le forum Linux
    Réponses: 4
    Dernier message: 03/05/2004, 21h34
  4. Réponses: 2
    Dernier message: 30/03/2004, 11h31
  5. Controler une chaine de caracteres ou d'entiers?
    Par Le druide dans le forum C
    Réponses: 6
    Dernier message: 25/09/2003, 08h48

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