有没有一种简单的方法可以在java中评估字符串,例如“81 + 23 * 5-21”?

时间:2013-07-05 17:13:42

标签: java string double evaluation

我正在尝试构建一个Android计算器应用程序。我会有一些字符串,例如"13+23-3""40*2+3"。 有没有一种方法可以直接将这种字符串转换为double(具有正确的运算符优先级)?或者我必须自己写一个方法?

我尝试过Double.parseDouble()和Double.valueOf(),但都无法转换它。

1 个答案:

答案 0 :(得分:0)

可以使用ScriptEngine类并使用eval()功能。我想可能有更好的方法,但这会有效,但肯定效率不高。

ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine e = m.getEngineByName("js");        
Object result = e.eval("13+23-3");