Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 试图找出排序的区别_Java_Excel_Sorting_Selenium - Fatal编程技术网

Java 试图找出排序的区别

Java 试图找出排序的区别,java,excel,sorting,selenium,Java,Excel,Sorting,Selenium,我必须验证表中的一列是否正确排序。我获取该列,将其放入Java列表,然后执行Collections.sort()忽略大小写。Java排序与表列中的排序不同。我注意到表格的排序方式与Microsoft Excel的排序方式相同。我正试图找出差异,以便正确地进行Java排序(可能是本地排序) 我在Windows中的系统属性显示en.us。不管怎样,我对字符进行了双向排序,并在下面向您展示。第一种是标准拉丁语,是Java排序。第二种,我不确定它到底是什么类型,是表排序和Excel排序。有人知道我如何使

我必须验证表中的一列是否正确排序。我获取该列,将其放入Java列表,然后执行
Collections.sort()
忽略大小写。Java排序与表列中的排序不同。我注意到表格的排序方式与Microsoft Excel的排序方式相同。我正试图找出差异,以便正确地进行Java排序(可能是本地排序)

我在Windows中的系统属性显示
en.us
。不管怎样,我对字符进行了双向排序,并在下面向您展示。第一种是标准拉丁语,是Java排序。第二种,我不确定它到底是什么类型,是表排序和Excel排序。有人知道我如何使Java排序与之匹配吗(一个区别是它使用了ignore case,我也需要这样做)

==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   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   {   |   }
'   -   #   $   %   &   (   )   *   ,   .   /   :   ;   ?   @   [   \   ]   
^   _   `   {   |   }   +   <   =   >   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   1   2   3   4   5   6   7   8   
9 A A B C D E F G H I
J J K K L M N O P Q R S
s T T U V W X X Y Y Z
来自:

数据分析从排序开始。您可以在一个或多个列中对文本(A到Z或Z到A)、数字(最小到最大或最大到最小)以及日期和时间(最早到最新和最新到最早)进行排序。还可以按创建的自定义列表(如大、中、小)进行排序。也可以按格式排序,包括单元格颜色、字体颜色或图标集。大多数情况下,您将按列排序,但也可以按行排序

排序时,将数据重新排列为某种顺序。相反,过滤时会隐藏无关数据。有关筛选的详细信息,请参见关于筛选

对一系列单元格进行排序时,排序条件不会与工作簿一起保存。如果要保存排序条件,以便下次打开工作簿时重新应用,可以将数据保存为Excel表。在对多个列进行排序或创建复杂的排序条件(创建这些条件需要很长时间)时,请将数据保存在表中

重新应用排序条件时,可能会看到不同的结果。如果公式返回的值已更改,并且重新计算工作表,则可能发生这种情况。如果单元格或表格列的范围中添加、更改或删除了数据,也会发生这种情况

Excel使用以下升序排序数据:0 1 2 3 4 5 6 7 8 9(空格)!“#$%&()*,./:?@[\]^ `{124;}+=>a b c d e f g h i j k l m n o p q r t u w x y z a b c d e f g h i j k l m n o p q r t w x y z假真(表格错误)(空白单元格)

因此排序顺序将与Collections.sort()不同,因为Java更可能根据UTF-8对字符进行排序

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

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

javadocs中有很多关于这方面的文档。

注意:排序不同的不仅仅是大写/小写字符。当我使用ignore case时,它将字母排序为其他字符,但其他字符则不是。这与字符编码有关。Excel我很确定使用ANSI或其他编码。第一个g组是按每个字符的UTF-8字符代码值排序的。我试过了,但没有成功。它以相同的Java方式排序。我确实编写了一个比较器,我认为可能会成功。你对此有何看法?