我如何布尔计算包含布尔表达式的字符串?喜欢:
String userVar[] = {"a = 1", "b = 1", "c = 0"}; String expr = "a & b & c"; boolean result = evaluate(expr); //would evaluate to false
用户应该能够定义自己的变量(a = 1),并定义自己的布尔表达式(a & b & c)。因此,我将所有表达式仅作为字符串使用。我如何评估它们?
a = 1
a & b & c
您可以使用Nambari评论的ScriptEngine:
ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript"); String userVar[] = {"a = 1", "b = 1", "c = 0"}; for (String s : userVar) { engine.eval(s); } String expr = "a & b & c"; System.out.println(engine.eval(expr));
打印0。
还要注意,该表达式不是布尔表达式,而是按位运算。