String
次のような値から数式を評価する Java ルーチンを記述しようとしています。
"5+3"
"10-4*5"
"(1+10)*3"
多くの if-then-else ステートメントを避けたいのですが、どうすればよいでしょうか?
ベストアンサー1
JDK1.6 では、組み込みの Javascript エンジンを使用できます。
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
public class Test {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String foo = "40+2";
System.out.println(engine.eval(foo));
}
}