Je suis nouveau à Java. J’ai une chaîne comme suit :
Maintenant, je dois obtenir le résultat de 20 à l’aide de la chaîne. Je sais que dans certaines autres langues le `` fonction va le faire. Comment puis-je faire cela en Java ?
Je suis nouveau à Java. J’ai une chaîne comme suit :
Maintenant, je dois obtenir le résultat de 20 à l’aide de la chaîne. Je sais que dans certaines autres langues le `` fonction va le faire. Comment puis-je faire cela en Java ?
Vous pouvez utiliser le `` de la classe et de l’évaluer comme une chaîne de Javascript
Il peut y avoir une meilleure façon, mais celui-ci fonctionne.
Il n'existe pas de standard de Java une classe ou une méthode qui permettra de faire ce que vous voulez. Vos options comprennent:
Sélectionner et d'utiliser certaines de tiers l'évaluation de l'expression de la bibliothèque. Par exemple JEL ou de l'une de la demi-douzaine de bibliothèques répertoriées ici.
Placer l'expression dans le code source Java pour une classe avec un eval
méthode, envoyer que pour le compilateur de Java, puis de charger la résultante classe compilée.
L'utilisation de certains langage de script qui peut être appelée à partir de Java comme un évaluateur d'expression. Les possibilités incluent Javascript, BeanShell, et ainsi de suite.
Ecrivez votre propre évaluation de l'expression à partir de zéro.
La première approche est sans doute plus simple. Les deuxième et troisième approches sont un risque de sécurité potentiel si vous obtenez l'évaluation de l'expression d'un utilisateur non fiable. (Pensez à l'injection de code.)
No, vous ne pouvez pas avoir un générique « eval » en Java (ou n’importe quel langage compilé). Sauf si vous êtes prêt à écrire un compilateur Java et une machine virtuelle Java pour être exécutés à l’intérieur de votre programme Java.
Oui, vous pouvez avoir une bibliothèque pour évaluer des expressions algébriques numériques comme celui ci-dessus - voir ce fil de discussion.
La rédaction de votre propre bibliothèque n'est pas si difficile que peut-être u chose. Voici le lien pour Shunting-yard algorithme à l'étape par étape de l'algorithme explenation. Bien, vous allez avoir à analyser les données d'entrée pour les jetons d'abord.
Il y a 2 autres questions qui peuvent vous donner quelques informations: Transformer une Chaîne de caractères dans une Expression Mathématique? Ce qui est une bonne bibliothèque pour l'analyse des expressions mathématiques en java?
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.