2010-11-22 14 views
1

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

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

「Java™Platform Standard Ed。6」には、文字列から数式を評価するためのパッケージ「javax.script」があります。数式を評価するためにJ2MEで使用できるパッケージやクラスがあります。文字列

答えて

1

次のステップは式が中置形である文字列variable.Hereで式を読むJ2ME

  1. を文字列から数式を評価するために使用されています。
  2. 文字列変数の式を後置式に変換し、別の文字列変数 "postfix_str"に格納します。
  3. スタックを使用してpostfix形式の式( "postfix_str"データの値)を評価します。
+0

ありがとう、このhttp://faculty.cs.niu.edu/~hutchins/csci241/eval.htmは私のために働いたが、それは1文字の長さのオペランドのために働く、私は3,5,9等を意味し、45ではなく、 34、81など。私にそれについて何か教えてください。 –

2

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

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

基本的なケースでは、すべての演算子とオペランドをそれぞれのスタックに解析し、次に2つのオペランドと演算子をポップアップして計算し、結果をオペランドスタックに戻して評価します。演算子スタックが空になり、オペランドスタックに1つの値(結果)があるまで続行します。演算子が足りなくなり、スタックに複数の結果がある場合、式にエラーがあります。

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

+0

おかげさまで、ありがとうございました。スタックベースのパーサとは、文字列の式をpostfixに変換して評価するということですか?正しいですか他の方法ですか。問題を解決するために私に案内してください。よりフレッシュな仕事) –

+0

こんにちはフレッドリックPennachi、 –

+1

こんにちはフレッドリックPennachi、あなたのような情報のおかげで、ありがとう。私はスタックベースのパーサーは、文字列の式を変換してpostfixに変換することを意味すると思う?それは正しいまたは他の方法です。 J2MEの新鮮な開発者です(仕事にもっと新鮮です) –

関連する問題