Java:String:equalsIgnoreCase vs将所有内容切换为大写/小写

Jas*_*ers 25 java string string-comparison

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

我很久以前习惯使用equalsIgnoreCase以避免出现区分大小写的字符串问题.

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

从我的立场(即使技术上我坐着),我看不出真正的区别.

有人知道一种做法是否优于另一种做法?如果是这样,为什么?

Asa*_*aph 50

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

什么更具可读性?

if (myString.toUpperCase().equals(myOtherString.toUpperCase())) {
Run Code Online (Sandbox Code Playgroud)

要么

if (myString.equalsIgnoreCase(myOtherString)) {
Run Code Online (Sandbox Code Playgroud)

我想我们都同意equalsIgnoreCase更具可读性.

  • 是的,但是......这是一个吸管人.如果您正在处理案例无关紧要的字符串,那么您很可能会在比较之前准备好字符串.假设您将用户输入的单词与字典进行匹配.在特定情况下你有字典,你只需转换一次用户字符串. (3认同)

kol*_*aTM 10

equalsIgnoreCase避免了有关Locale特定差异的问题(例如,在Turkish Locale中有两个不同的大写"i"字母).另一方面,Maps仅使用equals()方法.

  • 所以当土耳其语从小写转换为大写时,如何处理选择? (3认同)