Skip to main content

Evaluar expresiones matemáticas con java

Posted in

Si tenemos una expresión matemática en un String, estilo "5*X+3*2", no hay forma en java de evaluar dicha expresión para un valor concreto de X ... ¿o sí?. Java viene con una api que permite ejecutar javascript y javascript sí tiene una manera de evaluar esas expresiones. Por tanto, desde java, podemos hacerlo de esta manera.

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
 
public class scriptEngine {
 
    public static void main(String[] args) throws Exception {
 
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("js");
        engine.put("X", 3);
 
        Object operation = engine.eval("5*X+3*2");
        Object operation2 = engine.eval("(X+3)");
 
        System.out.println("Evaluado operacion 1: " + operation);
        System.out.println("Evaluado operacion 2: " + operation2);
 
    }
}

http://forums.sun.com/thread.jspa?threadID=5144807