我刚刚花了将近一个小时的时间来调试自己的代码中的List<String>
,而该错误被我的Comparator
分类。
证明string.compareTo(string2)
区分大小写。意味着所有大写字母都在小写字母之前。例如“ Z”在“ d”之前。
是否有更好的方法比较Strings
中的2 Comparator
并按字母升序对它们进行排序,而除string.toLowerCase().compareTo(string2.toLowerCase());
之外,它们不区分大小写?
编辑:我的String
中可能会出现带重音的字母,例如ä,ö,ü,é,è等。
答案 0 :(得分:12)
字符串本身提供了两个选项:
String.compareToIgnoreCase(String)
:compareTo
的不区分大小写的变体形式String.CASE_INSENSITIVE_ORDER
:Comparator
与compareToIgnoreCase
的顺序相同java.text.Collator
和java.text.RuleBasedCollator
提示:您的第一站应该是Javadoc,而不是在Stack Overflow上发布问题:Javadoc内容广泛,通常会提供快速答案。
答案 1 :(得分:6)
使用String.CASE_INSENSITIVE_ORDER.compare
答案 2 :(得分:1)
使用compareToIgnoreCase()方法
答案 3 :(得分:0)
字符串Api具有第二个进行比较的函数,该函数在不区分大小写的情况下进行比较。
string1.compareToIgnoreCase(string2);