1

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

たとえば、「2 * 4」を含む文字列です。文字列から数式を評価し、結果を8(2 * 4)として取得します。J2MEでこれを行うにはどうすればよいですか。

「Java™PlatformStandardEd。6」には、文字列から数式を評価するために使用される「javax.script」というパッケージがあります。J2MEで文字列から数式を評価するために、任意のパッケージまたはクラスを使用できます。

4

2 に答える 2

2

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

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

基本的なケースでは、すべての演算子とオペランドをそれぞれのスタックに解析してから、2 つのオペランドと演算子を取り出して評価し、計算を実行してから結果をオペランド スタックに格納します。演算子スタックが空になり、オペランド スタックに値 (結果) が 1 つだけになるまで続行します。演算子を使い果たし、スタックに複数の結果がある場合は、式にエラーがあります。

括弧 (ネストされた括弧を含む) を処理するには、左右の括弧に演算子を含めます。右括弧に遭遇した場合に式を解析するとき、左括弧に遭遇するまで、すぐに式の評価を開始します (2 つのオペランドと演算子をポップし、結果をオペランド スタックに戻します)。次に、式の解析を再開します。

于 2010-11-22T06:11:21.527 に答える
1

以下は、J2ME で文字列から数式を評価するために使用される手順です。

  1. 文字列変数の式を読み取ります。ここで、式は中置形式です。
  2. 文字列変数の式を後置形式に変換し、それを別の文字列変数「postfix_str」に格納します。
  3. スタックを使用して、後置形式 (「postfix_str」データの値) で式を評価します。
于 2010-11-26T03:25:59.267 に答える