gpt4 book ai didi

java - 为什么不区分大小写的比较器不进行大小写比较

转载 作者:行者123 更新时间:2023-11-30 07:41:36 25 4
gpt4 key购买 nike

我正在查看 CaseInsensitiveComparator 的代码,但无法理解以下代码

               if (c1 != c2) {
c1 = Character.toUpperCase(c1);
c2 = Character.toUpperCase(c2);
if (c1 != c2) {
c1 = Character.toLowerCase(c1);
c2 = Character.toLowerCase(c2);
if (c1 != c2) {
// No overflow because of numeric promotion
return c1 - c2;
}
}
}

比较大小写字符的目的是什么?难道其中之一还不够吗?我们是否怀疑某些字符小写时可以相等,但大写时不相等?

最佳答案

来自Unicode Standard :

In addition, because of the vagaries of natural language, there are situations where two different Unicode characters have the same uppercase or lowercase

所以有时你会发现字母的小写相同而大写不同,从而进行比较。

另请检查source其中说:

Unfortunately, conversion to uppercase does not work properly for the Georgian alphabet, which has strange rules about case conversion. So we need to make one last check before exiting.

关于java - 为什么不区分大小写的比较器不进行大小写比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34627012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com