操車場アルゴリズムの実装を検討していますが、文字列をトークンに分割するための最良の方法を理解するための支援が必要です。
お気づきの方もいらっしゃると思いますが、アルゴリズムの最初のステップは「トークンの読み取り」です。これは、簡単なことではありません。トークンは、数値、演算子、および親で構成できます。
次のようなことをしている場合:
(5 + 1)
単純なstring.split()は、トークンの配列{"("、 "5"、 "+"、 "1"、 ")"}を提供します。
ただし、次のように複数桁の数字がある場合は、さらに複雑になります。
((2048 * 124)+ 42)
これで、単純なstring.split()はうまくいきません。複数桁の数字が問題です。
レクサーを作成できることは知っていますが、本格的なレクサーを作成せずにこれを行う方法はありますか?
私はこれをJavaScriptで実装しており、可能であればレクサーパスをたどる必要がないようにしたいと思います。「*」、「+」、「-」、「/」の演算子を整数とともに使用します。