1. ホーム
  2. java

[解決済み] 文字列で指定された数式を評価するには?

2022-03-14 12:32:03

質問

からの数式を評価するJavaルーチンを書こうとしています。 String のような値です。

  1. "5+3"
  2. "10-40"
  3. "(1+10)*3"

if-then-else文の多用を避けたいのですが。 どうしたらいいでしょうか?

どのように解決するのですか?

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));
    } 
}