为什么以下“ if()”语句的值为true?

operand1 = "0";
operand1 = Integer.toBinaryString(Long.valueOf(operand1, 10).intValue());


if(operand1 != "0") {
    display_secondary.setText(operand1.toUpperCase(Locale.ENGLISH));
}


上面的'if'语句被评估为true并运行其中的代码。为什么会这样呢?



下面的代码评估为false(符合预期)。

operand1 = Integer.toBinaryString(Long.valueOf(operand1, 10).intValue());
operand1 = "0";

if(operand1 != "0") {
    display_secondary.setText(operand1.toUpperCase(Locale.ENGLISH));
}

最佳答案

要在Java中比较String,请使用:

if(!operand1.equals("0")){

}


在执行此操作时,您正在比较对象地址而不是String内容。

关于java - 如何测试字符串值的相等性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18690682/

10-11 00:13