1

可能重复:
如何比较 Java 中的字符串?

我正在尝试使用 || 比较一个字符串 操作员..

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

这有什么问题?字符串不能这样比较??

4

6 回答 6

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您将不会得到空指针异常。但是你喜欢/适合你吗
于 2012-06-11T08:26:08.727 回答
4

通过这种方式,您不是在比较内容......您是在比较参考资料。

如果要比较内容,请使用

publisher.equals("Niho books")

or 

publisher.equalsIgnoreCase("Niho books")
于 2012-06-11T08:27:38.947 回答
3

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

if (!publisher.equals("Niho books") || !publisher.equals("Diamond Comics"))
于 2012-06-11T08:27:20.153 回答
2

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

于 2012-06-11T08:28:57.610 回答
1

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

publisher.equals("Niho books")
于 2012-06-11T08:26:31.903 回答
1

http://www.devdaily.com/java/edu/qanda/pjqa00001.shtml阅读此

于 2012-06-11T08:26:57.427 回答