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