Вопрос

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