質問

J2meの文字列から数学的式を評価する方法。

たとえば、「2*4」を含む文字列。文字列から数学的な式を評価し、結果を8(2*4)として取得したい。

「Java™Platform Standarded。6」には、stringから数学的式を評価するために「Javax.script」というパッケージがあります。J2MEが文字列から数学的式を評価するためにJ2MEが利用できるようなものです。

役に立ちましたか?

解決 2

以下は、j2meの文字列からの数学的式を評価するために使用されます

  1. 文字列変数で式を読み取ります。ここでは、式はfluedです。
  2. 文字列変数の式をポストフィックスフォームに変換し、別の文字列変数、つまり「postfix_str」に保存します。
  3. スタックを使用して、ポストフィックスフォーム(「PostFix_Str」データの値)の式を評価します。

他のヒント

ネストされた式を処理する必要がある場合は、独自のスタックベースのパーサーを書くだけです。

アルゴリズムに慣れていない場合は、2つのスタックを使用します。1つはオペレーターを保持し、もう1つはオペランドを保持するために使用します。

基本的なケースでは、すべてのオペレーターとオペランドをそれぞれのスタックに解析し、2つのオペランドとオペレーターを飛ばして評価し、計算を実行してから、結果をオペランドスタックに保存します。オペレータースタックが空になり、オペランドスタックの値が1つしかないまで続行します(結果)。オペレーターが不足し、スタックに複数の結果がある場合、式にエラーがあります。

括弧(ネストされた括弧を含む)を処理するには、左右のパレンズのオペレーターを含めます。右のパレンに遭遇した場合、式を解析するときは、左のパレンに遭遇するまで、右のパレンがすぐに式の評価を開始します(2つのオペランドとオペレーターをオペロンスタックに戻し、オペランドスタックに戻します)。次に、式を解析することを再開します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top