小编典典

评估布尔字符串表达式?

java

我如何布尔计算包含布尔表达式的字符串?喜欢:

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)。因此,我将所有表达式仅作为字符串使用。我如何评估它们?


阅读 299

收藏
2020-09-28

共1个答案

小编典典

您可以使用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。

还要注意,该表达式不是布尔表达式,而是按位运算。

2020-09-28