2015-01-23 9 views
1

테이블의 열이 올바르게 정렬되어 있는지 확인해야합니다. 나는 열을 가져 와서 Java 목록에 넣고 Collections.sort() 대소 문자를 무시합니다. Java 정렬은 테이블 컬럼의 정렬과 다릅니다. 나는 테이블이 마이크로 소프트 엑셀이 분류하는 것과 같은 방식으로 정렬된다는 것을 알아 차렸다. 차이점을 찾아 Java 정렬을 올바르게 (어쩌면 로컬) 할 수 있도록 노력하고 있습니다.정렬의 차이를 알아 내려고 시도합니다.

Windows의 시스템 속성에는 en.us이 표시됩니다. 어쨌든 나는 두 가지 방법으로 등장 인물을 분류하고 아래에서 보여주고 있습니다. 첫 번째, 표준 라틴어는 자바 정렬입니다. 두 번째는 정확히 어떤 유형인지는 모르지만 테이블 정렬과 Excel 정렬입니다. 누구든지 내가 자바 정렬 일치하게 만들 수있는 방법을 알아낼 수 있습니다 (하나의 차이점은 내가 또한 필요로하는 경우를 무시합니다).

== 은, 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 { | } 

== 엑셀/테이블 정렬에서

' - # $ % & ( ) * , . / : ; ? @ [ \ ] 
^ _ ` { | } + < = > 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

참고 : 대/소문자를 구분하는 것 이상의 의미가 있습니다. 대소 문자를 무시할 때 문자를 다른 문자로 정렬하지만 다른 문자는 그렇지 않습니다. – user3257891

+0

문자 인코딩과 관련이 있습니다. Excel 난 꽤 ANSI 또는 다른 인코딩을 사용하여 확신 해요. 첫 번째 그룹은 각 문자의 UTF-8 문자 코드 값으로 정렬됩니다. – Joe

답변

0

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

데이터 분석 정렬로 시작합니다. 하나 이상의 열에서 텍스트 (A에서 Z 또는 Z에서 A), 숫자 (최소에서 최대 또는 최소) 및 날짜 및 시간 (가장 오래된 것부터 가장 최신이고 가장 오래된 것부터 가장 오래된 것)을 정렬 할 수 있습니다. 또한 사용자가 만든 사용자 지정 목록 (예 : 대, 중, 소)을 기준으로 정렬 할 수도 있습니다. 또는 셀 색상, 글꼴 색상 또는 아이콘 세트를 포함한 형식으로 정렬 할 수 있습니다. 가장 자주 열을 기준으로 정렬되지만 행을 기준으로 정렬 할 수도 있습니다.

정렬 할 때 데이터를 순서대로 재 배열합니다. 반대로 필터링하면 관계없는 데이터가 숨겨집니다. 필터링에 대한 자세한 내용은 필터링 정보를 참조하십시오.

셀 범위를 정렬하면 정렬 기준이 통합 문서에 저장되지 않습니다. 다음에 통합 문서를 열 때 다시 적용 할 수 있도록 정렬 기준을 저장하려는 경우 데이터를 Excel 테이블로 저장할 수 있습니다. 여러 열을 정렬 할 때 또는 작성하는 데 오랜 시간이 걸리는 복잡한 정렬 기준을 작성하는 경우 테이블에 데이터를 저장하십시오.

정렬 기준을 다시 적용하면 다른 결과가 표시 될 수 있습니다. 수식에서 반환 된 값이 변경되어 시트가 다시 계산되는 경우에 이러한 오류가 발생할 수 있습니다. 셀 범위 또는 테이블 열에 데이터가 추가, 변경 또는 삭제 된 경우에도 발생할 수 있습니다.

Excel은 다음 오름차순 정렬 순서를 사용하여 데이터를 정렬합니다. 0 1 2 3 4 5 6 7 8 9 (공백)! "# $으로 % &() *,/:; @ [\]^_`{|} ~ + < => ABCDEFGHIJKLMNOPQRSTU VWXYZ ABCDEFGHIJKLMNOPQRSTU VWXYZ FALSE TRUE (시트 오류) (빈 셀)

.?. 그래서 정렬 순서는 Collections.sort()와 같지 않습니다. 자바가 UTF-8에 따라 문자를 정렬하는 것보다 더 가능성이 높습니다.

Excel이 어떤 인코딩을 사용하고 있는지 확실하지 않지만 컬렉션의 동작을 변경할 수 있습니다. .sort()는 다음과 같습니다.

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

javadocs에는 이에 대한 많은 문서가 있습니다.

+0

나는 그것을 시도했지만 작동하지 않았다. 동일한 Java 방식으로 정렬되었습니다. 내가 생각하는 비교기를 작성했다. 이거 어떻게 생각해? – user3257891

관련 문제