使用!=比较字符串

时间:2012-06-11 08:24:18

标签: java string

  

可能重复:
  How do I compare strings in Java?

我试图比较使用||的striong运营商..

if(publisher != "Niho books" || publisher != "Diamond Comics" )

这有什么问题?字符串无法像这样进行比较??

6 个答案:

答案 0 :(得分:6)

这应该有效:

if (!"Niho books".equals(publisher) || !"Diamond Comics".equals(publisher))

http://www.leepoint.net/notes-java/data/strings/12stringcomparison.html

  • 不要使用==!=进行字符串比较
  • equals()可以在发布商之后或在您的字符串之后(publisher.equals()"string".equals()),我认为第二个可能更好,因为如果您的发布商是null您不会得到nullpointer异常。但是你喜欢/适合你吗

答案 1 :(得分:4)

通过这种方式,您不会比较内容......您正在比较参考文献。

如果您想比较内容,请使用

publisher.equals("Niho books")

or 

publisher.equalsIgnoreCase("Niho books")

答案 2 :(得分:3)

不要使用!===来比较Java中的字符串。请改用.equals()!===运算符会比较引用,而不是对象的内容。

if (!publisher.equals("Niho books") || !publisher.equals("Diamond Comics"))

答案 3 :(得分:2)

在字符串中, equals()测试值的相等性,其中!=和==测试引用的相等性。

答案 4 :(得分:1)

不,字符串应该像这样比较:

publisher.equals("Niho books")

答案 5 :(得分:1)