Évaluez facilement des expressions mathématiques en Java
L'intégration de l'évaluation dynamique de formules dans vos applications Java peut considérablement améliorer leurs fonctionnalités. Cet article explore une solution pour évaluer les expressions mathématiques fournies par les utilisateurs, vous permettant de travailler facilement avec des formules complexes comme "sin (x pi)/2 1".
Le défi
Pour évaluer une expression mathématique donnée, vous avez besoin d'un outil qui comprend la syntaxe mathématique et peut effectuer les calculs nécessaires. Il existe plusieurs bibliothèques disponibles à cet effet.
Solution : exp4j
Une bibliothèque hautement recommandée est exp4j, qui utilise l'algorithme Shunting Yard de Dijkstra pour une évaluation efficace des expressions. Sa facilité d'utilisation et sa petite taille (environ 25 Ko) en font un choix idéal.
Utiliser exp4j
Pour utiliser exp4j, créez un Calculable objet en fournissant l’expression sous forme de chaîne. Vous pouvez ensuite définir les valeurs de toutes les variables impliquées dans la formule à l'aide de la méthode withVariable. Enfin, appelez la méthode calculate pour évaluer l'expression. Voici un exemple :
<code class="java">Calculable calc = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)") .withVariable("x", varX) .withVariable("y", varY) .build(); double result1 = calc.calculate();</code>
Pour les versions plus récentes d'exp4j, utilisez les méthodes build et evaluate :
<code class="java">Expression calc = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)") .variable("x", x) .variable("y", y) .build(); double result1 = calc.evaluate();</code>
Fonctions personnalisées
exp4j vous permet également de définir des fonctions personnalisées, vous permettant d'étendre ses capacités pour des exigences spécifiques. Reportez-vous à la documentation exp4j pour plus de détails sur l'implémentation de fonctions personnalisées.
En utilisant exp4j, vous pouvez évaluer sans effort des expressions mathématiques en Java, améliorant ainsi la polyvalence de vos applications.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!