连接double和string来评估

时间:2014-04-01 15:15:52

标签: java function arraylist operators

我有两个ArrayLists

[+, / , - ]
[12,8,5, 4]

我的代码:

        for(int i=0; i<ops.length; i++){
            String op = setOps.get(i);

            double numer1 = Double.parseDouble(setNumbers.get(i));
            double numer2 = Double.parseDouble(setNumbers.get(i+1));

            System.out.println(numer1+op+numer2);
        }

我的输出:

12.0+8.0
8.0/5.0
5.0-4.0

我可以将运算符附加到数字上,但它们不会评估。

2 个答案:

答案 0 :(得分:1)

这不会那样。您需要让操作员使用您自己的代码执行操作。

示例:

if(op.equals("+") ) {
    double result = numer1 + numer2;
}

System.out.println(result);

答案 1 :(得分:1)

使用java 8,您可以使用nashorn

import javax.script.*;

public class Calculate {

    public static void main(String[] args) throws ScriptException {
        String command = "1 / 2";
        ScriptEngineManager scriptManager = new ScriptEngineManager();
        ScriptEngine scriptEngine = scriptManager.getEngineByName("nashorn");
        Object result = scriptEngine.eval(command);
        System.out.println("result " + result);
    }

}

在您的情况下(数学运算)result可以是Integerdouble。但在其他情况下它可能是其他的东西。