我试图比较使用||的striong运营商..
if(publisher != "Niho books" || publisher != "Diamond Comics" )
这有什么问题?字符串无法像这样进行比较??
答案 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)