私は計算機に取り組んでいます。入力を文字列として受け取り、計算を実行して結果を出力する必要があります。
たとえば、入力は次のようになります。
((23+17) mod 7 × 4 AND 13
期待どおり、出力は になります4
。
入力を解析してすべてのオペランドを抽出し、計算を実行するにはどうすればよいですか?
私は計算機に取り組んでいます。入力を文字列として受け取り、計算を実行して結果を出力する必要があります。
たとえば、入力は次のようになります。
((23+17) mod 7 × 4 AND 13
期待どおり、出力は になります4
。
入力を解析してすべてのオペランドを抽出し、計算を実行するにはどうすればよいですか?
他の答えは単に「この結果に変数を設定する方法」ですが、実際に入力を解析する場合は、これを参照する必要があります。
この種の問題を解決するにはいくつかの方法があり、そのためのアルゴリズムもいくつかあります。それらのいくつかはスタックベースであり、いくつかは「ツリー」の降下を実行し、OOP 化する (やや) 複雑な方法を考えることさえできます。上記のリンクから始めます。
正規表現を使用して文字列を解析できます。
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html
最初に [() - 括弧] のような最も重要な引数を探す必要があり、次に [*/] と [+-] を減らします。文字列全体を部分に分割する必要があります。
例:
どちらも Java です。
このページを参照してください。
http://www.tutorialspoint.com/java/java_basic_operators.htm
Java のすべての演算子が非常に明確に説明されています。