1

私のプログラムは文字列入力を受け取り、engine.eval()ScriptEngine インポートから使用して計算します。評価された値を int 型に変換するにはどうすればよいですか?

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Main {

public static void main(String[] args) {

    String s = "206 + 4";
    Object eval;

    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine eng = mgr.getEngineByName("JavaScript");

    try {
        eval = eng.eval(s);
    } catch (ScriptException e) {
        System.out.println("Error evaluating input string.");
    }

//Convert Object eval to int sum
}
}
4

3 に答える 3

1

ScriptEngine は、算術式に対して Double を返すため、Double にキャストし、その intValue メソッドを使用します。

    int res = ((Double) eng.eval(s)).intValue();
于 2013-05-07T10:01:10.890 に答える