J2MEの文字列から数式を評価する方法。
たとえば、「2 * 4」を含む文字列です。文字列から数式を評価し、結果を8(2 * 4)として取得します。J2MEでこれを行うにはどうすればよいですか。
「Java™PlatformStandardEd。6」には、文字列から数式を評価するために使用される「javax.script」というパッケージがあります。J2MEで文字列から数式を評価するために、任意のパッケージまたはクラスを使用できます。
J2MEの文字列から数式を評価する方法。
たとえば、「2 * 4」を含む文字列です。文字列から数式を評価し、結果を8(2 * 4)として取得します。J2MEでこれを行うにはどうすればよいですか。
「Java™PlatformStandardEd。6」には、文字列から数式を評価するために使用される「javax.script」というパッケージがあります。J2MEで文字列から数式を評価するために、任意のパッケージまたはクラスを使用できます。
ネストされた式を処理する必要がある場合は、独自のスタック ベースのパーサーを記述してください。
アルゴリズムに慣れていない場合は、2 つのスタックを使用します。1 つは演算子を保持するため、もう 1 つはオペランドを保持するためです。
基本的なケースでは、すべての演算子とオペランドをそれぞれのスタックに解析してから、2 つのオペランドと演算子を取り出して評価し、計算を実行してから結果をオペランド スタックに格納します。演算子スタックが空になり、オペランド スタックに値 (結果) が 1 つだけになるまで続行します。演算子を使い果たし、スタックに複数の結果がある場合は、式にエラーがあります。
括弧 (ネストされた括弧を含む) を処理するには、左右の括弧に演算子を含めます。右括弧に遭遇した場合に式を解析するとき、左括弧に遭遇するまで、すぐに式の評価を開始します (2 つのオペランドと演算子をポップし、結果をオペランド スタックに戻します)。次に、式の解析を再開します。
以下は、J2ME で文字列から数式を評価するために使用される手順です。