3

かっこから簡単な数式を分割しようとしています

例: 。(8+(3(2+3)(4-1)))のような小さな式に分割し(2+3), (4-1), (3*5*3), and finally (8+45)ます。

ここで式の分割を見てみましたが、Pythonであるため、Javaで実装する方法がわかりません。

誰か助けてくれませんか。

4

3 に答える 3

3

実際に「分割」する必要がありますか、それとも単に評価する必要がありますか?直接評価する方が簡単です。

これが私の答えでした...

算術式を解析し、Javaでそれからツリーを構築する

于 2012-11-07T06:27:20.863 に答える
3

ダイクストラの操車場アルゴリズムが役立つと思います。その目的は、中置記法の式を解くことです。中間結果を取得して、探している式を取得できます。

http://en.wikipedia.org/wiki/Shunting-yard_algorithm

Cのサンプルコードが含まれています。これはJavaに似ているため、役立つはずです。

于 2012-11-07T06:31:01.057 に答える
0

これを解決するには、算術式ツリーを使用することをお勧めします。私はC#を使用してこれを行いました。興味があれば、メソッドを提供できます。

于 2012-11-07T06:29:15.320 に答える