public enum OPERATORS {
MUL("*"), ADD("+"), SUB("-"), DIV("/")
}
および文字列として
s = A2 B4 * C5 /
のいずれかがあるかどうかを確認するにs
はどうすればよいOPERATORS
ですか?
public enum OPERATORS {
MUL("*"), ADD("+"), SUB("-"), DIV("/")
}
および文字列として
s = A2 B4 * C5 /
のいずれかがあるかどうかを確認するにs
はどうすればよいOPERATORS
ですか?
getOperatorSymbol()が列挙型に実装されていると仮定します
for (OPERATORS op: OPERATORS.values()) {
if(s.contains(op.getOperatorSymbol())
{
//your code
}
}
sに演算子の1つがあるかどうかを確認するにはどうすればよいですか?
なんとかしてコーディングする必要があります。検索している文字列は、enum
値の名前ではありません。それらはカスタム属性に格納されます。したがって、文字列を手動で抽出してから、それぞれのターゲット文字列を検索する必要があります。
これを行うには複数の方法があります。例えば
OPERATOR列挙値をループし、それぞれの演算子文字列を抽出して、入力文字列に対してテストするだけです。@pangeaの回答を参照してください。
ループを使用して、任意の演算子文字列に一致する正規表現を作成し、その正規表現を使用して文字列に一致させることができます。これは、パフォーマンスが真の懸念事項であり、正規表現の作成コストを償却できる場合に適したアプローチです。つまり、1回だけ実行し、正規表現を複数回再利用します。(ただし、パフォーマンスが問題にならない場合は、このアプローチの複雑さは保証されません。)