2017-02-27 2 views
0

最近、私はInfix式を取り、後置式に変換して評価する計算機を作成するように頼んだクラスの1つに割り当てを与えました。Javaのmulidigit番号をサポートするために、Infix文字列をPostfix文字列に変換する

問題は、マルチバイト数字の実装に起因します。
私は多角形の数字を表すためにスペースを使うことを考えましたが、私は、Posixの評価方法が多項式の数字とそれ以外のものを見るのに役立つだけなので、

私はちょうどinixからpostfixへの変換を行う方法を理解する助けが必要です。

+0

入力はどうですか?それは+ bかa + bか? – Sedrick

+0

私はそれが+ bであると指定しているはずです。 – amingst

+0

演算子のインデックスの文字列を検索します。オペレーターをつかみなさい。その後、文字列を演算子に分割します。あなたは3つの部分で終わるでしょう。最初の数字、演算子、2番目の数字。 – Sedrick

答えて

0

これは単なるスキャンの問題です。それは、接尾辞 - 後置変換に特有の何も持っていません。一度に1文字ずつスキャンする数字が出現したら、そのトークンのスキャンに次の数字を含めます。次のものが数字でないときに停止します。それはオペレータか完全性のために空白のどちらかになります。空白の場合は無視します(ただし、数字列を終了した後)。そうでない場合は、それをパーサーに返します。

スペースは必要ありませんが、スキャニングに役立つ場合は評価方法ではなく、ユーザーには役立ちます。評価メソッドは、スキャナーが指示するように、数値が何であるかを既に知っています。

+0

数値が浮動小数点数の場合はどうなりますか? – Sedrick

+0

@SedrickJefferson私はあなたが「実数」を意味すると思います。これらを実装するには、小数点で停止した場合、次の数字がある場合はスキャンを続けますが、質問には実数については何もありません。 – EJP

+0

私のアプローチでは、オペレータを分割する場合、必要な2つの番号が割り当てられます。 – Sedrick

関連する問題