これが可能かどうかはわかりません。入力が次のようになる状況にいます。
[int, String, int]
文字列は "<"、">"、"="、"<="、">=" のいずれかです。
複数の if ステートメントを使用せずに、文字列比較パラメーターに関して 2 つの int を比較するのに役立つメソッドを実装する方法はありますか?
うまく説明できたと思います。
ありがとう。
Java ソース コードの演算子のように文字列を適用する方法はありません。各文字列値をテストし、適切なテストを行う必要があります。
public boolean eval(int arg1, String op, int arg2) {
if (op.equals("<")) {
return arg1 < arg2;
} else if (op.equals("<=")) {
return arg1 <= arg2;
} else . . .
}
これについて非常に凝った方法があります (たとえば、 a を使用Map<String, Callable<Boolean>>
) が、あなたが説明していることには価値がないようです。
別の方法として (CM Kanode と screppedcola がコメントで示唆しているように) を使用して式を JavaScript として評価することもできますがScriptEngine
、これもやり過ぎのように思えます。