1

重複の可能性:
文字列形式で指定された数式を評価する

長い(そして少し奇妙な:))タイトルについて申し訳ありませんが、これ以上のタイトルは考えられませんでしたが、ここにあります。

私は実際の電卓のようにを使っJFrameてJavaで電卓を作っています。JButtonsボタンをクリックすると、計算がに表示されますTextArea。「等しい」ボタンが押されると、計算全体がから取得され、TextArea計算されます。私が抱えている問題は、実際に答えを計算する方法です。これは少し奇妙に聞こえるかもしれませんが、私が得ている計算はです36+45/22。変数に数値を書き込んでから、変数に対して実行する操作とその順序をコンピューターに指示するにはどうすればよいでしょうか。これは、無限の数の変数で実行できますか?これを行う方法はありますか?ご協力いただきありがとうございます。

4

3 に答える 3

3

使用できますScriptEngine

ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
System.out.println("result = " + engine.eval("36+45/22"));

別のオプションはJepです。

于 2012-11-04T20:17:23.353 に答える
1

これを試してください。私は同様の実装を使用しています。うまく機能します。:-D

Javaで式を評価する

于 2012-11-04T20:16:45.217 に答える
0

式を自分で評価し、ScriptEngine などの外部 API に依存しない場合は、最初に式を解析する必要があります。この解析により、後で評価できる式のメモリ内表現が得られます。

算術式を処理する一般的な方法は、再帰降下パーサーです。この種のパーサーには、解析された式を解析メソッドでその場で評価するという優れた機能があります。コンピュータ サイエンスの形式言語理論に依存しない再帰的降下パーサーの例は、http ://www.savarese.org/articles/1998-2006/2001-05-Recursive_Descent_Parsing/にあります。

于 2012-11-04T20:34:03.223 に答える