2

今、私は持っているので、この文字列式を計算して結果を直接返すString lam = "(8-2*7.5)+10"メソッドまたはクラスはありますか?

前もって感謝します!

4

3 に答える 3

3

これを試して

    double res = (Double) new ScriptEngineManager().getEngineByName("js").eval("(8-2*7.5)+10");
于 2013-05-08T07:22:44.487 に答える
2

java 1.6 は、Javascript エンジンを提供します。それを使用して、数式を計算できます。

使用するクラスは :ScriptEngineManagerおよびScriptEngine

于 2013-05-08T07:22:56.530 に答える
1

ほとんどの場合、デフォルトではありません。これは、Java コードの実行時解釈 (eeek!)、または Java 標準ライブラリに埋め込まれたかなり単純な算術サブ言語の解析および解釈機構のいずれかに対応します。

この種の式を解析して評価する必要がある場合は、単純な再帰降下パーサーを作成し、オンザフライで評価することを検討します。Google で簡単に検索すると、まさにこの種の言語に対して Java でこれを行う方法が提案されるはずです。

于 2013-05-08T07:21:53.237 に答える