【发布时间】:2011-09-18 09:18:22
【问题描述】:
我不知道为什么 CellType 与“Hamster”的比较是错误的。想知道为什么会这样!
它们完全相同,即使区分大小写。
请帮帮我。
【问题讨论】:
标签: java android string comparator
我不知道为什么 CellType 与“Hamster”的比较是错误的。想知道为什么会这样!
它们完全相同,即使区分大小写。
请帮帮我。
【问题讨论】:
标签: java android string comparator
你需要使用
if (CellType.equals("Hamster")) {
...
}
另一个比较检查它们是否是相同的字符串对象,而不是按值相同的字符串。
这也是查找differences between reference equality and Object equality的好时机。
【讨论】:
== 运算符保留用于比较事物是否完全相等。换句话说,它只用于原始类型和检查两个引用是否指向同一个对象。由于能够创建具有相同“内容”的新对象,因此需要第二个相等运算符让对象通过内容进行比较。 .equals(...) 方法可以做到这一点,并且是多态的,允许对象在必要时覆盖它。 Java 不喜欢运算符重载,所以就是这样。
== 是身份比较运算符(同一个对象)。当你想比较等价时,你应该使用equals()。
【讨论】:
请使用
CellType.equals("Hamster");
如果要忽略大小写,请使用,
CellType.equalsIgnoreCase("Hamster");
【讨论】:
CellType.equals("Hamster")
or
CellType.equalsIgnoreCase("Hamster")
使用上述格式,会小心的
【讨论】: