所以我有一个输入数据的字符串,比如String input = "5-3*7+8/6*2",我想使用数学计算规则来计算结果,比如* before +等等。有没有一种简单的方法来对操作的单个部分进行排序,以遵循这些规则?我已经尝试为每个数字和它的运算符创建子字符串,但我不知道如何从那里继续:
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。
发布于 2015-09-20 21:39:16
你可以这样做:
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));
}
}https://stackoverflow.com/questions/32679923
复制相似问题