我需要评估&#34; (num1+ num2) < num 3
&#34;表达式为布尔格式
示例:
String str = "(24+3) < 4";
如果str
或Boolean
,则必须评估上述true
至false
,然后在Boolean
条件中使用最终if ()
值。< / p>
我不想提取单个字符,转换为int
然后继续评估每个子表达式。
答案 0 :(得分:3)
您可以使用javascript引擎,但我认为这样做太多了:
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String str = "(24+3) < 4";
try {
if (engine.eval(str)){
...
}
} catch (ScriptException e) {
}
答案 1 :(得分:1)
还有一个BeanShell(http://www.beanshell.org/):
final Interpreter i = new Interpreter();
try {
Object res = i.eval("(24 + 3) < 4");
System.out.println("Result is " + res);
} catch (EvalError ex) {
System.err.println("Error while evaluating expression: " + ex.getMessage());
}