Java:字符串:等于签名大小写与将所有内容切换为大写/小写

2022-09-01 15:01:21

我注意到有几种方法可以比较Java中的字符串。

很久以前,我刚刚养成了使用习惯,以避免在区分大小写的字符串时遇到问题。equalsIgnoreCase

另一方面,其他人更喜欢以大写或小写形式传递所有内容。

从我站立的地方(即使从技术上讲我坐着),我看不到真正的区别。

有谁知道一种做法是否比另一种更好?如果是这样,为什么?


答案 1

之所以使用,是因为它比在比较之前将两个字符串都转换为大写更具可读性。可读性胜过微优化equalsIgnoreCase

什么更具可读性?

if (myString.toUpperCase().equals(myOtherString.toUpperCase())) {

if (myString.equalsIgnoreCase(myOtherString)) {

我想我们都同意,这更具可读性。equalsIgnoreCase


答案 2

equalsIgnoreCase避免了有关特定于区域设置的差异的问题(例如,在土耳其语区域设置中,有两个不同的大写“i”字母)。另一方面,Maps 仅使用 equals() 方法。