我正在尝试构建一个Android计算器应用程序。我会有一些字符串,例如"13+23-3"
或"40*2+3"
。
有没有一种方法可以直接将这种字符串转换为double(具有正确的运算符优先级)?或者我必须自己写一个方法?
我尝试过Double.parseDouble()和Double.valueOf(),但都无法转换它。
答案 0 :(得分:0)
您可以使用ScriptEngine类并使用eval()功能。我想可能有更好的方法,但这会有效,但肯定效率不高。
ScriptEngineManager m = new ScriptEngineManager();
ScriptEngine e = m.getEngineByName("js");
Object result = e.eval("13+23-3");