所以我有一个带有输入数据的字符串,例如 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。
最佳答案
你可以这样做:
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));
}
}
关于Java计算器计算规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32679923/