-5

私は計算機に取り組んでいます。入力を文字列として受け取り、計算を実行して結果を出力する必要があります。

たとえば、入力は次のようになります。

  ((23+17) mod 7 × 4 AND 13

期待どおり、出力は になります4

入力を解析してすべてのオペランドを抽出し、計算を実行するにはどうすればよいですか?

4

3 に答える 3

2

他の答えは単に「この結果に変数を設定する方法」ですが、実際に入力を解析する場合は、これを参照する必要があります。

優先順位付きの方程式 (式) パーサー?

この種の問題を解決するにはいくつかの方法があり、そのためのアルゴリズムもいくつかあります。それらのいくつかはスタックベースであり、いくつかは「ツリー」の降下を実行し、OOP 化する (やや) 複雑な方法を考えることさえできます。上記のリンクから始めます。

于 2013-08-28T11:43:54.500 に答える
1

正規表現を使用して文字列を解析できます。

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html

最初に [() - 括弧] のような最も重要な引数を探す必要があり、次に [*/] と [+-] を減らします。文字列全体を部分に分割する必要があります。

例:

簡易電卓(ページ下部)

別の電卓

どちらも Java です。

于 2013-08-28T11:43:10.560 に答える
0

このページを参照してください。

http://www.tutorialspoint.com/java/java_basic_operators.htm

Java のすべての演算子が非常に明確に説明されています。

于 2013-08-28T11:41:08.910 に答える