Java Does Not Equal (!=) Not Working?
这是我的代码段:
1 2 3 4 5 6 7
| public void joinRoom (String room ) throws MulticasterJoinException {
String statusCheck = this. transmit("room", "join", room +"," + this. groupMax +"," + this. uniqueID);
if (statusCheck !="success") {
throw new MulticasterJoinException (statusCheck, this. PAppletRef);
}
} |
然而,由于某种原因,if (statusCheck !="success")返回false从而抛出MulticasterJoinException。
- 使用equals()VS = =。zparacha.com / Java的字符串比较
- leepoint.net记事本java日期/ / / / 12stringcomparison.html strings
- 我知道这answering should start探测问题和它自己。
- 不看答案的问题在这一政策建议中的as the entered the title,知道figured恩是独特的。guess not…
- kublaikhan问这个问题",在访谈(String平等)。有人可以回答的是not often当工厂当EN =(how to和不让它工作了)。
1
| if (!"success".equals(statusCheck)) |
号
- 注意彼得的用法!"成功"。等于(statuscheck)而不是!statuscheck.equals("成功")。这样,如果statuscheck为空,则可以避免NullPointerException。
- 我建议您也查看一下"*.equalsignorecase(string)",以确保一切正常。
当然,如果你想和大家一起去,你可以用equals,但是如果你真的想让你的程序员同事们大吃一惊的话,可以这样检查不平等:
1
| if ("success" != statusCheck.intern()) |
。
实习生方法是标准Java String API的一部分。
- +从我这里。虽然我不希望在我必须维护的代码库中看到这个习语,但是了解intern()是什么以及它是如何工作的确实很有用。(使用google guava的interner使这些内容更加明确)
- 四年后,我意识到我应该说,我永远不会在"真正的"代码中使用它,我也不建议任何其他人这样做。可能有一些边缘案例,其中实习一个字符串提供了轻微的性能改进,但我的答案是教育和娱乐。
- 即使假设阅读代码的人知道"intern()"的作用,他们仍然会对它的存在原因感到困惑,因为他们会试图弄清楚为什么要使用它。
- @塔斯格尔,我同意——如果有必要使用intern(),那么可以说代码应该有很好的文档记录。
==和!=研究对象身份。虽然两个String具有相同的值,但它们实际上是两个不同的对象。
用!"success".equals(statusCheck)代替。
做其中一个。
1 2 3 4 5 6 7 8 9 10 11
| if(!statusCheck.equals("success"))
{
//do something
}
or
if(!"success".equals(statusCheck))
{
//do something
} |
- 这两种情况有什么区别?
- 错了!别这样!(我是说,第一个)。为什么?如果是statusCheck==null,那么你的脸上就会有NPE。在第二个示例中,只有statuscheck为空时才会得到false。@阿利坎巴利克
请使用!statusCheck.equals("success")代替!=。
这里有更多的细节。
- 实际上,你@anubhava和subop都是错的。如果可以的话,不要将nullable对象放在equals(Object)方法中的第一个。应该是!"success".equals(statusCheck)。否则,如果statusCheck == null,您可以获得NPE。
在比较字符串时,需要使用equals()方法,否则您只是比较对象引用,因此在您的情况下,您需要:
1
| if (!statusCheck.equals("success")) { |
- 等于,而不是等于。
- 不是静态的
- 更好的方法是检查!"success".equals(statusCheck),如果statuscheck为空,则不会抛出NullPointerException。
您可以使用equals()方法来满足您的需求。=在Java编程语言中有不同的含义!