Java的:有一些实用的方法来计算

问题描述:

现在我哈瓦一个String lam = "(8-2*7.5)+10",所以没有任何方法或类来计算这个字符串表达式直接返回我结果Java的:有一些实用的方法来计算

在此先感谢!

+2

您可以使用此link.http://*.com/questions/3422673/evaluating-a-math-expression-given-in-string-form – Rohan 2013-05-08 07:22:56

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

如果你需要分析和评估这种表情,我会考虑写一个简单的递归下降解析器和即时评估。快速谷歌搜索应该建议用Java来完成这种语言的方法。

试试这个

double res = (Double) new ScriptEngineManager().getEngineByName("js").eval("(8-2*7.5)+10"); 
+0

你确定它是'js'而不是'JavaScript'吗? – bezmax 2013-05-08 07:23:17

+0

我相信,因为我测试了它并得到了3.0 – 2013-05-08 07:24:53

+0

似乎那个引擎有几个别名。 'JavaScript'也可以工作并返回相同的脚本引擎。 – bezmax 2013-05-08 07:28:13

的Java 1.6中提供Javascript引擎。你可以用它来计算你的数学表达式。

clases使用是:ScriptEngineManagerScriptEngine

+0

也许并非原始海报在询问时想到的解决方案,而是最实用的解决方案。 (如果他使用了合适的java版本) – mschenk74 2013-05-08 07:25:50

+1

Ya这是真的,Java 6和更高版本提供了非常容易解决问题的JavaScript引擎。如果你有更适合所有版本的java的更好的解决方案,那么请张贴。感谢您的反馈。 – Joshi 2013-05-08 07:29:21