我正在制作一款Android应用程序,最终将用作游戏的骰子。我有一个键盘,将方程式输入字符串。然后我将String解析成一个数组,需要计算方程式。我正在使用for循环来遍历数组,但是我不确定如何在它出现时处理乘法。
举个例子:
String theEquation = "2 + 3 * 6";
String[] result = theEquation.split("\\s+");
所以我现在有一个数组,其中包含2,+,3,*,6。我怎么能把它变成20的答案呢?
我最初使用for循环将整个数组添加到一起。当它只是添加时,它工作正常。但是当我添加乘法时,事情变得很糟糕。
答案 0 :(得分:2)
您可以使用javax.script.ScriptEngine
<强>输出强>
20
请参阅此代码:
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
public class EvaluateExpr {
public static void main(String[] args) throws Exception{
ScriptEngineManager se = new ScriptEngineManager();
ScriptEngine scriptengine = se.getEngineByName("JavaScript");
String theEquation = "2 + 3 * 6";
System.out.println(scriptengine.eval(theEquation));
}
}
答案 1 :(得分:0)