Possible Duplicate:
free Java library for evaluating math expressions




我想知道Java中是否有一个可以接收字符串的包,例如“ x ^ 2 + e ^ x * cos(x)”,并像计算器那样将给定的x值作为数学函数进行评估-理想情况下是免费的并且公开可用。是否存在?

最佳答案

有很多-这是一个相当简单且常见的解析器编写练习,因此很多人可以尝试并发布一些代码。参见例如:


http://jeval.sourceforge.net/
http://www.javaprogrammingforums.com/algorithms-recursion/605-java-calculator.html
https://webspace.utexas.edu/anl234/calc/


可能的问题将是可用的数学函数范围。您可以期望使用标准功能,但是可能需要自定义/添加自己的功能,以实现更特殊的功能(也许是cosh?)

另一种选择是嵌入语言解释器,例如Groovy进行计算。这有点重量级,这意味着您将需要更加注意安全风险(例如,如果代码可能在服务器上运行),但是如果您对脚本有更一般的需求,这可能是有道理的。

10-04 17:56