在 Java 中测试 String
的相等性时,我总是使用 equals()
,因为对我来说,这似乎是最自然的方法。毕竟,它的名字已经说明了它的意图。然而,我的一个同事最近告诉我,他们教我使用 compareTo() == 0
而不是 equals()
。这让我感觉很不自然(因为 compareTo()
意味着提供一个排序,而不是为了平等而进行比较) ,甚至有些危险(因为 compareTo() == 0
并不一定意味着在所有情况下都是平等的,尽管我知道对于 String
来说是这样的)。
他不知道为什么他被教导使用 compareTo()
而不是 equals()
作为 String
,我也找不到任何原因。这真的是个人喜好的问题吗? 或者这两种方法都有什么真正的原因吗?