-1

これが私の問題です。式である文字列があります。この式には、数値定数、変数、数学および論理演算子が含まれています。例:4 * A && B、X +5>Y。また、基本的に変数を変換する変換マップ(String-> String)があります。

必要な出力は翻訳された式です。この例により、単純な置換は失敗します。式はA && Xであり、A-> XX、X->Bです。Aで始まる単純な置換により、式はXX && Xになり、XIを置換するときにBB&Bを取得します。ここで、期待される出力はXX&Bになります。

助言がありますか?

編集:考えられる解決策は、式をアトミック単位に解析することを知っている式コンパイラーを作成することであると思います。これは後で置き換えることができます。もっと簡単な解決策があるかどうか疑問に思っています

4

1 に答える 1

0

「よりシンプルなソリューション」を定義します。

式をアトミック単位に解析する (演算子を復元できるようにするために、使用しないでくださいString.split()-代わりにPatternandを (from から) 使用します) は簡単で、機能します。Matcherjava.util.regex

より効率的にするには、ある種の語彙アナライザーを作成する必要があります。

于 2012-11-26T08:32:37.057 に答える