文字列形式で与えられた数式を評価するにはどうすればよいでしょうか? 質問する

文字列形式で与えられた数式を評価するにはどうすればよいでしょうか? 質問する

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

  1. "5+3"
  2. "10-4*5"
  3. "(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));
    } 
}

おすすめ記事