在Java中评估布尔值

Adn*_*nan 6 java eval

我试图从字符串中评估以下内容

boolean value = evaluate("false || true && true && false || true");
Run Code Online (Sandbox Code Playgroud)

我需要为此获得一个布尔值true.
关于如何以最有效的方式解决这个问题的任何想法?

aio*_*obe 7

String value = ("false || true && true && false || true");
boolean result = false;
for (String conj : value.split("\\|\\|")) {
    boolean b = true;
    for (String litteral : conj.split("&&"))
        b &= Boolean.parseBoolean(litteral.trim());
    result |= b;
}
System.out.println(result); // prints true
Run Code Online (Sandbox Code Playgroud)

  • 你可以通过突破它来优化外循环(使用while而不是for,或者在for的结尾使用break),只要结果为true:它再也不会变为false (2认同)