将字符串表达式转换为布尔表达式

Axa*_*hia 2 java string boolean

class A{

    public static void main(String a[]){
        String ad ="1<2";
        Boolean b = Boolean.parseBoolean(ad);
        if(b){
            System.out.println("true"); 
        }
        else
        {
            System.out.println("false");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望输出是真的,但它实际上打印的是假的。

Mar*_*vin 5

你似乎混淆了Boolean.parseBoolean工作原理。在javadoc中明确指出:

如果字符串参数不为空并且与字符串“true”相等(忽略大小写),则返回的布尔值表示值 true。

即只有像Boolean.parseBoolean("True")Boolean.parseBoolean("tRuE")返回真这样的表达式,没有像在 Javascript 中那样完成参数评估eval()(尽管您可以在 Java 中使用 ScriptEngine)。

请参阅此示例

public static void main (String[] args) throws java.lang.Exception
{
    String ad ="1<2";
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("js");
    Object result = engine.eval(ad);
    System.out.println(Boolean.TRUE.equals(result)); // true
}
Run Code Online (Sandbox Code Playgroud)