ICU:演示区分大小写的排序

问题描述

ICU collation demo 页面上,我在 Input 文本框中输入了以下单词:

Adam
apple
Bob

如何设置区分大小写的排序,其中

  1. 小写字母在前,即apple Adam Bob,
  2. 大写字母在前,即 Adam Bob apple?

你能解释一下吗?

解决方法

如果您先指定大小写:lower,则小写字母在该组中排在大写字母之前。在下面的示例中,2A 字符串排在 5C 字符串之前。在 2A 串内,05 一起排序,u1c 排序在 _05 之前。

我指定了以下设置:

  • 实力:主要
  • 案例级别:开启
  • 大小写优先:下

输入:ADAm、Za、ZA、zzz、Zb、Adam、apple、ADAM
输出:

Adam  [2A,05,u1C][30,_05][2A,_05][42,_05]  
ADam  [2A,u1C][2A,_05]  
ADAM  [2A,u1C][42,u1C]  
apple [2A,_05][48,_05][40,_05][32,_05]  
Za    [5C,_05]  
ZA    [5C,u1C]  
Zb    [5C,u1C][2C,_05]  
zzz   [5C,_05][5C,_05]

首先切换案例和亚当的反向位置。

您还可以通过添加自己的规则来定制排序。

 & z <* A-Z

将所有小写字符串放在大写字符串之前。因此,选择所有默认值后,输出为:

 apple [2A,_05]
 zzz   [5C,_05]
 Adam  [5D02,u05][30,_05]
 ADam  [5D02,u05][5D0502,u05][2A,_05]
 ADAM  [5D02,u05][5D02,u05][5D050B,u05]
 Za    [5D0518,_05]
 Zb    [5D0518,u05][2C,_05]
 ZA    [5D0518,u05]