자바 에서 한자 정렬 가장 간단명료 한 소개

1550 단어 JAVA
자바 는 모든 한 자 를 정확하게 정렬 할 수 없다.예 를 들 어'번'과'흠'을 정렬 하면 결과 가 또 어 지 러 워 진 것 을 발견 할 수 있다!다만 우리 의 한자 문화 가 너무 넓 고 심오 하기 때문에 이 순 서 를 잘 하려 면 자바 가 좀 어렵다.더 깊 은 차원 의 이 유 는 자바 가 UNICODE 인 코딩 을 사 용 했 기 때 문 입 니 다.중국어 UNICODE 문자 집합 은 GB 18030 에서 기원 되 었 고 GB 18030 은 GB 2312 에서 발전 되 었 습 니 다.GB 2312 는 포함 되 어 있 습 니 다. 7000 여 개의 문자 집합 은 병 음 에 따라 정렬 되 고 연속 되 며 그 후의 GBK,GB 2312 는 모두 기초 위 에서 확 장 된 것 이기 때문에 그것들 을 완전 하 게 정렬 하 는 것 도 더욱 어렵다.그러나 정렬 대상 이 자주 사용 하 는 한자 라면 Collator 류 로 정렬 하면 우리 의 요 구 를 만족 시 킬 수 있 습 니 다.
기본 정렬 알고리즘 을 사용 하 는 예:
import java.util.*;
import java.text.*;

public class SortByChinese {
    //  
    public void sort() {

        String[] a1 = {"  ","   ","   ","  ","      "," ","  ","  ","  "};
        getSortOfChinese(a1);
        for (int i = 0; i < a1.length; i++) {
            System.out.println(a1[i]);
        }
    }
    /**
     *
     * @param a String[]
     * @return String[]
     */
    public String[] getSortOfChinese(String[] a) {
        // Collator                 CHINA
        Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);

        // JDKz         。
        Arrays.sort(a, cmp);
        return a;
    }
}

엄격 한 정렬 이 필요 하 다 면 일부 오픈 소스 프로젝트 를 사용 하여 스스로 실현 할 수 있 습 니 다.예 를 들 어 pinyin4j 는 한 자 를 병 음 으로 바 꾼 다음 에 우리 스스로 정렬 알고리즘 을 실현 할 수 있 습 니 다.그러나 이때 알고리즘,동 음 자,다 음 자 등 여러 가지 문 제 를 고려 해 야 한 다 는 것 을 알 게 될 것 입 니 다.
        pinyin4j 다운로드 주소:http://pinyin4j.sourceforge.net/
글 참고:의 건의 59.

좋은 웹페이지 즐겨찾기