1

可能重复:
用于评估数学表达式的免费 Java 库

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

4

1 回答 1

0

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

可能的问题是可用的数学函数的范围。您可以期待标准功能,但可能需要自定义/添加您自己的功能以获得更不寻常的功能(也许是cosh ?)

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

于 2012-09-06T03:59:34.717 回答