ScriptEngine 을 이용한 Expression Calculator
JAVA / 2011. 2. 8. 00:36
중괄호 '{ }' 로 피연산자의 id 가 정의된 수식 파서를 개발해야할 일이 있어, 학부 때 배웠던 자료구조 책을 펼쳐보다가 좌절을 하고 고민하고 있었습니다.
{id} + {id2} * 0.1 * {id3}
위와 같은 식이 있을 경우 아이디와 맵핑이 되는 값을 치환하여 파싱을 하고 계산을 해야 하는데...
계속 고민하다가 떠올린 것이 Javascript eval 함수였습니다. 이걸 자바에서 가능하게 해주는 것이 javax.script.ScriptEngine 입니다. (예전에 Rhino 라는 이름으로 자바에서 사용하는 스크립팅 엔진이라는 것을 들었는데 JDK 1.6 에서 포함된 것 같습니다. 정확하진 않아요;;;)
ㅁ JAVA
ㅁ JavaScript
eval 을 이용하면 문자열도 자연스럽게 합칠 수 있답니다.
이제 적용할 일만 남았네요~