2

现在我有一个String lam = "(8-2*7.5)+10",那么有什么方法或类来计算这个字符串表达式直接返回结果吗?

提前致谢!

4

3 回答 3

3

尝试这个

    double res = (Double) new ScriptEngineManager().getEngineByName("js").eval("(8-2*7.5)+10");
于 2013-05-08T07:22:44.487 回答
2

java 1.6 内提供了Javascript引擎。您可以使用它来计算您的数学表达式。

要使用的类别是:ScriptEngineManagerScriptEngine

于 2013-05-08T07:22:56.530 回答
1

几乎可以肯定不是默认情况下。这将对应于 Java 代码的运行时解释(eeek!)或用于嵌入在 Java 标准库中的相当简单的算术子语言的解析和解释机制。

如果您需要解析和评估此类表达式,我会考虑编写一个简单的递归下降解析器并即时评估。快速的 Google 搜索应该会建议在 Java 中针对此类语言执行此操作的方法。

于 2013-05-08T07:21:53.237 回答