import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

class Main {
    public static void main(String[] args) throws ScriptException {
        ScriptEngineManager mgr = new ScriptEngineManager();
        ScriptEngine engine = mgr.getEngineByName("JavaScript");

        String str = "40+2";

        System.out.println(engine.eval(str)); // 42
        System.out.println(engine.eval("4-10")); // -6
        System.out.println(engine.eval("4*3")); // 12
        System.out.println(engine.eval("2/0")); // Infinity
        System.out.println(engine.eval("0/0")); // NaN
        System.out.println(engine.eval("3.0/2")); // 1.5

        // Error
        // System.out.println(engine.eval("i"));
        // System.out.println(engine.eval("+"));
    }
}

 

연산의 결과값들은 JavaScript의 결과값을 반환한다.

예외 처리를 해주어야 하고, 수식이 아닌 값은 에러가 발생한다.

https://unikys.tistory.com/m/226

+ Recent posts