Java计算器计算规则

时间:2015-09-20 13:29:11

标签: java calculator

所以我有一个像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。

1 个答案:

答案 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));
    } 
}