我必须验证表中的列是否正确排序。我把列放入Java列表并执行Collections.sort()
忽略大小写。 Java排序与表的列中的排序不同。我注意到表的排序方式与Microsoft Excel排序方式相同。我试图找到差异所以我可以正确地进行Java排序(可能是本地)。
我在Windows中的系统属性显示en.us
。无论如何,我对两个角色进行了分类,并在下面给你看。第一个标准拉丁语是Java排序。第二,我不确定它究竟是什么类型,是表格排序和Excel排序。任何人都可以弄清楚我如何使Java排序匹配它(一个区别是它使用忽略情况,我也需要)。
== Collections.sort()
# $ % & ' ( ) * + , - . / 0 1 2 3 4 5
6 7 8 9 : ; < = > ? @ A B C D E F G
H I J K L M N O P Q R S T U V W X Y
Z [ \ ] ^ _ ` a b c d e f g h i j k
l m n o p q r s t u v w x y z { | }
== Excel /表格排序
' - # $ % & ( ) * , . / : ; ? @ [ \ ]
^ _ ` { | } + < = > 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
答案 0 :(得分:0)
数据分析从排序开始。您可以在一列或多列中对文本(A到Z或Z到A),数字(从最小到最大或从最大到最小)以及日期和时间(从最旧到最新,从最新到最旧)进行排序。您还可以按自己创建的自定义列表(例如“大”,“中”和“小”)进行排序。或者您可以按格式排序,包括单元格颜色,字体颜色或图标集。最常见的是,您将按列排序,但您也可以按行排序。
排序时,将数据重新排列为某种顺序。相反,当您过滤时,您隐藏了无关的数据。有关过滤的详细信息,请参阅关于过滤。
对一系列单元格进行排序时,排序条件不会随工作簿一起保存。如果要保存排序条件,以便下次打开工作簿时可以重新应用它,则可以将数据另存为Excel表。在排序多个列时,或者如果创建需要很长时间才能创建的复杂排序条件,请将数据保存在表中。
重新应用排序条件时,您可能会看到不同的结果。如果公式返回的值已更改并重新计算工作表,则会发生这种情况。如果单元格范围或表格列已添加,更改或删除数据,也会发生这种情况。
Excel使用以下升序排序对数据进行排序:0 1 2 3 4 5 6 7 8 9(空格)! “#$%&amp;()*,。/:;?@ [\] ^ _` {|}〜+&lt; =&gt; abcdefghijklmnopqrstu vwxyz ABCDEFGHIJKLMNOPQRSTU VWXYZ FALSE TRUE(工作表错误)(空白单元格)。
因此排序顺序与Collections.sort()不同。由于Java很可能根据UTF-8对字符进行排序。
不确定Excel正在使用哪种编码,但您可以按如下方式更改Collections.sort()的行为:
Collator collector = Collator.getInstance(Locale.US);
collector.setStrength(Collator.PRIMARY);
Collections.sort(list, collector);
在javadocs中有很多关于此的文档。