现在我有一个String lam = "(8-2*7.5)+10"
,那么有什么方法或类来计算这个字符串表达式并直接返回结果吗?
提前致谢!
尝试这个
double res = (Double) new ScriptEngineManager().getEngineByName("js").eval("(8-2*7.5)+10");
java 1.6 内提供了Javascript引擎。您可以使用它来计算您的数学表达式。
要使用的类别是:ScriptEngineManager
和ScriptEngine
几乎可以肯定不是默认情况下。这将对应于 Java 代码的运行时解释(eeek!)或用于嵌入在 Java 标准库中的相当简单的算术子语言的解析和解释机制。
如果您需要解析和评估此类表达式,我会考虑编写一个简单的递归下降解析器并即时评估。快速的 Google 搜索应该会建议在 Java 中针对此类语言执行此操作的方法。