0

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

我试过 Double.parseDouble() 和 Double.valueOf() 但都未能转换它。

4

1 回答 1

0

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

ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine e = m.getEngineByName("js");        
Object result = e.eval("13+23-3");
于 2013-07-05T17:14:51.227 回答