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