min*_*das 8 java sorting string localization collation
我试图了解区分大小写的命令应该如何使用Java Collator真正起作用.
在此示例中,以下字符串使用所有强度在法语区域设置中排序(为了说明目的,我在数据集中添加了一些额外的字符串):
[Äbc, äbc, Àbc, àbc, Abc, abc, ABC] - Original Data
[Äbc, äbc, Àbc, àbc, Abc, abc, ABC] Primary
[Abc, abc, ABC, Àbc, àbc, Äbc, äbc] Secondary
[abc, Abc, ABC, àbc, Àbc, äbc, Äbc] Tertiary
Case kicks in only with Tertiary Collation Strength :
[CACHE, cache, Cache, da, DA, Da] - Original Data
[CACHE, cache, Cache, da, DA, Da] Primary
[CACHE, cache, Cache, da, DA, Da] Secondary
[cache, Cache, CACHE, da, Da, DA] Tertiary
Run Code Online (Sandbox Code Playgroud)
但我真正期待的结果是:
[abc, àbc, äbc, Abc, ABC, Àbc, Äbc] Tertiary
[cache, da, Cache, CACHE, Da, DA] Tertiary
Run Code Online (Sandbox Code Playgroud)
换句话说,我希望所有小写首先(按字母顺序排序),然后是大写(反之亦然).这不是一个合理的期望吗?
有趣的是, android javadoc比 oracle javadoc 更有帮助 - 特别是:
\n\n\n\n\n当字符串中任何地方存在主要或次要差异时,将忽略第三次差异。
\n
另外值得注意的是:您得到的顺序是您在法国语言环境中所期望的顺序。根据维基百科文章“ordre alphab\xc3\xa9tique”:
\n\n\n\n\n首先分析\xc3\xa8re,将caract\xc3\xa8res 重音\xc3\xa9s、m\xc3\xaame 设为大值,将m\xc3\xaame 的alphab\xc3\xa9tique 设为caract\xc3\xa8re基本的。
\n
\n Si plusieurs ont le m\xc3\xaame rang alphab\xc3\xa9tique, on t\xc3\xa2che de les distinguer entre eux gr\xc3\xa2ce aux majuscules et aux 重音 (pour le e, on al\'ordre e、\xc3\xa9、\xc3\xa8、\xc3\xaa、\xc3\xab)
英文(我用斜体添加):
\n\n\n\n\n第一步包括对字母进行排名,无论其重音或大小写如何(即:a,A,\xc3\xa0 排名相同)。如果在第一步之后几个单词具有相同的排名,则考虑大小写和重音。
\n
换句话说,c(小盘股)和D(大盘股)始终可以按主要实力排序,而第三实力不会改变该顺序。
因此,在您的示例中,无论大小写和重音如何,您始终都会有cachebefore 。da仅当主字母相同时,大小写才会产生影响(c(小)与大写字母)。C例如,