Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

どれかに当てはまったらそれに対応するオブジェクトを生成したい

計算式を解析して計算を行うものをJavaのみで作ってみようと思
い、方法を考えた結果まず計算式をトークンに分割することにしまし
た。
そこで、トークンのパターンはどこかに正規表現で定義しておき、
"例えば数字に当てはまったらNumberTokenオブジェクトを生成す
る"
ということをやろうと思いました。

ですが、トークンのパターンごとにif文を書いてクラス違いの中身を
書くのは無駄に感じ、
"◯◯のパターンにマッチしたら◯◯Tokenオブジェクトを生成する"
そもそもということを定義できれば、簡略化できるのではないか?
と考えました。

その方法は存在しますでしょうか?
それともトークンのパターンごとにif文を作るしかないのでしょう
か?

public static ArrayList<Token> splitToken(String expr){
    ArrayList<Token> tokenList=new ArrayList<>();
    //先頭がどれに当てはまるかチェックして
    //どれかに当てはまったらそれに対応するTokenオブジェクト
    //(NumberToken,PlusToken,etc...)を作ってもらって
    //マッチした部分は消す
    //これをexprがなくなるまで繰り返す
    return tokenList;
}

2

回答

1579

閲覧

2件の回答

評価

0

Map<Pattern,Token>

評価

0

説明不足ですみません。
実は◯◯Tokenオブジェクトには当てはまった部分の設定もしたいん
です。

って書こうと思いましたが、
改めて考えればTokenオブジェクトに種類と当てはまった部分をもた
せておけばいいと思いました。
Map系統試してみます。
ありがとうございました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。