所以我有一个像String input = "5-3*7+8/6*2"
这样的输入数据的字符串,我想使用像*之前的数学计算规则来计算结果,依此类推...是否有一种简单的方法来排序单一的操作遵循这些规则?
我已经尝试用每个数字和它的运算符创建子串,但我不知道如何从那里继续:
int i_tmp = -1;
for (int i=0; i<string.length(); i++) {
//ia.getPositionAll() is true if the character i of the string is an operator
if (ia.getPositionAll()[i]==true) {
substrings[i]=string.substring(i_tmp+1, i);
i_tmp = i-1;
}
}
现在我不知道如何从这一点开始......
子串就像:
substring[0] = 5
substring[1] = -3
substring[2] = *7
substring[3] = +8
substring[n] = etc.
谢谢大家,H。
答案 0 :(得分:1)
你可以这样做:
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
public class A {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String input = "5-3*7+8/6*2";
System.out.println(engine.eval(input));
}
}