为什么以下“ 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/