I have two ArrayLists

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

My code:

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

My output:

12.0+8.0
8.0/5.0
5.0-4.0

I am able to attach the operators to the numbers, but they won't evaluate.

有帮助吗?

解决方案

It will not work that way. You need to make the operator do its thing with your own code.

Example:

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

System.out.println(result);

其他提示

With java 8 you can use 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);
    }

}

In your cases (math operations) result could be an Integer or a double. But it could be something else in other cases.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top