본문 바로가기

IT노트(구)/Java

자바에서 수식을 있는 그대로 계산하는 방법(연산자를 자르지 않고)

예를 들어 "3+4"라는 문자열 그 자체를 받았을 때(수식 그 자체)

이걸 그대로 계산할 수 있는 방법이 없을까?(연산자를 자르는 등 복잡한 과정을 거치지 않고!)

자바스크립트 엔진을 사용하면 된다!(정말 획기적인 방법이다!)

다음과 같이 처리하면 된다!("3+4"와 같은 단순한 연산이 아니라 훨씬 복잡한 연산에서 빛을 발할 수 있다! 예를 들어 "(1+2)*3"과 같은 경우!)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
 
public class Test d{
  public static void main(String[] args) throws ScriptException {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("JavaScript");
 
    Object result = null;
    result = engine.eval("3 + 4");
    System.out.println(result); // 7이 출력됨
  }
}
cs