现在我有了一个String lam = "(8-2*7.5)+10"
,所以有什么方法或类来计算这个字符串表达式并直接返回结果吗?
提前感谢!
发布于 2013-05-08 07:22:44
尝尝这个
double res = (Double) new ScriptEngineManager().getEngineByName("js").eval("(8-2*7.5)+10");
发布于 2013-05-08 07:22:56
Java1.6中提供Javascript引擎。你可以用它来计算你的数学表达式。
要使用的类有:ScriptEngineManager
和ScriptEngine
发布于 2013-05-08 07:21:53
几乎可以肯定,在默认情况下不会。这将对应于Java代码的运行时解释(eeek!)或者对嵌入在Java标准库中的一种非常琐碎的算术子语言进行解析和解释。
如果您需要解析和计算这类表达式,我将考虑编写一个简单的递归下降解析器并进行动态计算。一个快速的Google搜索应该建议如何在Java中对这类语言进行搜索。
https://stackoverflow.com/questions/16434870
复制相似问题