Java if语句相等

时间:2013-11-15 00:47:47

标签: java if-statement

如何可能,If语句不理解两个相同的东西,它们是相同的?

情况: 我只在字母b中写入txfName字段,然后按下“确定”按钮。

代码:

String letter = "b";
boolean same = false;
if (letter == txfName.getText()) {
same == true;
}

if语句程序向我显示变量same为false。为什么?怎么可能呢?

如果我写这样的代码:

String letter = "b";
boolean same = false;
if (letter == "b") {
same == true;
}

然后if语句程序向我显示变量同样如此。我不明白,它怎么可能。

3 个答案:

答案 0 :(得分:1)

==比较以查看两个对象是否相同。当您处理字符串时,它们是对象,因此它们可能没有相同的引用事件,尽管它们可以具有相同的值。您想要使用.equals()

有关更多详细信息,字符串在java中很特殊,因为有一些内部工作方式具有字符串池。所以在某些情况下,==实际上似乎可能有效,但在其他情况下可能不会。原因是String池尝试缓存最近使用的字符串以减少内存开销。无论如何.equals()正是你要找的。

答案 1 :(得分:1)

第一个问题

String letter = "b";
boolean same = false;
if (letter.equals( txfName.getText())) {
 same = true;
}
return same;
如果txfName.getText()返回“b”

将返回true

答案 2 :(得分:0)

要比较java中的对象,请使用.equals()方法而不是“==”运算符

替换以下代码

if (letter == txfName.getText()) 

if (letter.equals(txfName.getText()))