试图找出sorting的差异

我必须validation表中的列是否正确sorting。 我把这个列放到一个Java列表中,并执行Collections.sort()忽略大小写。 Javasorting与表中列的sorting不同。 我注意到表格sorting方式与Microsoft Excelsorting相同。 我试图find差异,所以我可以正确地做Javasorting(也许本地)。

Windows中我的系统属性显示en.us 无论如何,我把这些人物都按照两种方式分类,并且在下面显示。 第一个标准拉丁语是Javasorting。 第二,我不确定它是什么types,是表sorting和Excelsorting。 任何人都可以弄清楚我怎样才能使Javasorting匹配(一个区别是它使用忽略大小写,我也需要)。

== Collections.sort()

 # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ ABCDEFG HIJKLMNOPQRSTUVWXY Z [ \ ] ^ _ ` abcdefghijklmnopqrstu vwxyz { | } 

== Excel /表格sorting

 ' - # $ % & ( ) * , . / : ; ? @ [ \ ] ^ _ ` { | } + < = > 0 1 2 3 4 5 6 7 8 9 A a B b C c D d E e F f G g H h I i J j K k L l M m N n O o P p Q q R r S s T t U u V v W w X x Y y Z z 

来自: https : //support.office.microsoft.com/en-ca/article/About-sorting-bfea8d83-145b-400f-9ecf-8f7189945185

数据分析从分类开始。 您可以在一列或多列中对文本(A到Z或Z到A),数字(从最小到最大或从最大到最小)以及date和时间(从最旧到最新以及从最新到最旧)进行sorting。 您也可以按照您创build的自定义列表进行sorting(如大,中,小)。 或者,您可以按格式进行sorting,包括单元格颜色,字体颜色或图标集。 大多数情况下,您将按列sorting,但也可以按行sorting。

当你sorting,你重新排列数据的顺序。 相反,当你过滤时,你会隐藏无关的数据。 有关过滤的更多信息,请参阅关于过滤。

当您对一系列单元格进行sorting时,sorting条件不会与工作簿一起保存。 如果要保存sorting条件,以便下次打开工作簿时可以重新应用它,则可以将数据保存为Excel表格。 在对多个列进行sorting时,或者如果创build需要很长时间才能创build的复杂sorting条件,请将数据保存在表中。

当您重新应用sorting标准时,您可能会看到不同的结果。 如果由公式返回的值已更改并重新计算工作表,则会发生这种情况。 如果单元格或表列的范围已添加,更改或删除数据,也会发生此情况。

Excel使用以下升序sorting数据:0 1 2 3 4 5 6 7 8 9(空格)! “#$%&()*,。/:;?@ [\] ^ _`{|}〜+ <=> abcdefghijklmnopqrstu vwxyz ABCDEFGHIJKLMNOPQRSTU VWXYZ FALSE TRUE(sheet errors)(blank cells)。

所以sorting顺序不会与Collections.sort()相同。 由于Java根据UTF-8很可能对字符进行sorting。

不知道Excel正在使用哪种编码,但可以按如下方式更改Collections.sort()的行为:

 Collator collector = Collator.getInstance(Locale.US); collector.setStrength(Collator.PRIMARY); Collections.sort(list, collector); 

在javadoc中有很多这方面的文档。