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