JavaTM 2
Platform
Std.  Ed.  v1. 4.0

java.text
클래스 Collator

java.lang.Object 
  |
  +--java.text.Collator
모든 구현 인터페이스:
Cloneable , Comparator
직계의 기존의 서브 클래스:
RuleBasedCollator

public abstract class Collator
extends Object
implements Comparator , Cloneable

Collator 클래스는 로케일에 의존하는 String 의 비교를 실시합니다. 이 클래스를 사용해, 자연 언어 텍스트의 검색과 소트 routine를 구축합니다.

Collator 는 추상 base class입니다. 서브 클래스에 의해, 특정의 조합 방법을 구현합니다. 현재는 1 개의 서브 클래스 RuleBasedCollator 가 Java 2 플랫폼에서 제공되고 있어 광범위의 언어에 적용 가능합니다. 한층 더 특수한 필요성이 있는 경우에는 다른 서브 클래스를 작성할 수 있습니다.

로케일에 의존하는 것 외의 클래스와 같이, static 팩토리 메소드 getInstance 를 사용해, 어느 로케일에 대한 적절한 Collator 오브젝트를 얻을 수 있습니다. 특정의 조합 방법의 상세를 이해하거나 그방법을 수정하거나 하는 경우에는 Collator 의 서브 클래스를 보는 것만으로 충분합니다.

다음의 예는 디폴트 로케일의 Collator 를 사용해 2 개의 캐릭터 라인을 비교하는 방법을 나타낸 것입니다.

 // Compare two strings in the default locale
 Collator myCollator = Collator.getInstance();
 if( myCollator.compare("abc", "ABC") < 0 )
     System.out.println("abc is less than ABC");
 else
     System.out.println("abc is greater than or equal to ABC");
 

Collator 의 「강함」속성을 설정하면, 비교로 중요라고 보여지는 상위 레벨을 결정할 수 있습니다. 4 개의 레벨 PRIMARY,SECONDARY,TERTIARY,IDENTICAL 가 있습니다. 어느 언어의 기능에 어느 레벨을 할당할까는 정확하게는 로케일에 따라서 다릅니다. 예를 들어, 체코어에서는 "e" 와 "f" 는 주요한 (primary) 상위라고 보여집니다만, "e" 와 "ê" 는 2 차적 (secondary), "e" 와 "E" 는 3 차적 (tertiary)인 상위라고 보여져 "e" 와 "e" 는 동일 (identical)이라고 보여집니다. 다음의 예는 미국 영어로 대문자 소문자의 차이와 엑센트를 무시하는 방법을 나타낸 것입니다.

 //Get the Collator for US English and set its strength to PRIMARY
 Collator usCollator = Collator.getInstance(Locale.US);
 usCollator.setStrength(Collator.PRIMARY);
 if( usCollator.compare("abc", "ABC") == 0 ) {
     System.out.println("Strings are equivalent");
 }
 

String 를 1 회만 비교하는 경우는 compare 메소드를 사용하면 최선의 퍼포먼스를 얻을 수 있습니다. 그러나,String 의 리스트를 소트 하는 경우에는 통상,String 를 몇번이나 비교하지 않으면 안됩니다. 이 경우는 CollationKey 가 좋은 퍼포먼스를 얻을 수 있습니다. CollationKey 클래스에서는 다른 CollationKey 와 비트 단위로 비교할 수 있게,String 가 비트열에 변환됩니다. CollationKey 는 그 StringCollator 오브젝트에 의해 작성됩니다.
주: 다른 CollatorCollationKey 는 비교할 수 없습니다. CollationKey 를 사용하는 예에 대해서는 CollationKey 의 클래스의 설명을 참조해 주세요.

관련 항목:
RuleBasedCollator , CollationKey , CollationElementIterator , Locale

필드의 개요
static int CANONICAL_DECOMPOSITION
          분해 모드치입니다.
static int FULL_DECOMPOSITION
          분해 모드치입니다.
static int IDENTICAL
          Collator 의 강함을 나타내는 값입니다.
static int NO_DECOMPOSITION
          분해 모드치입니다.
static int PRIMARY
          Collator 의 강함을 나타내는 값입니다.
static int SECONDARY
          Collator 의 강함을 나타내는 값입니다.
static int TERTIARY
          Collator 의 강함을 나타내는 값입니다.
 
생성자의 개요
protected Collator ()
          디폴트의 constructor 입니다.
 
메소드의 개요
 Object clone ()
          Cloneable 를 오버라이드(override) 합니다.
 int compare (Object  o1, Object  o2)
          순서부를 위해서(때문에) 2 개의 인수를 비교합니다.
abstract  int compare (String  source, String  target)
          Collator 의 조합 룰에 따라, 소스 캐릭터 라인과 타겟 캐릭터 라인을 비교합니다.
 boolean equals (Object  that)
          2 개의 Collator 가 동일한지 어떤지를 비교합니다.
 boolean equals (String  source, String  target)
          Collator 의 조합 룰에 따라 2 개의 캐릭터 라인이 동일한지 어떤지를 비교하기 위한 간이 메소드입니다.
static Locale [] getAvailableLocales ()
          Collator 가 도입되고 있는 로케일 세트를 취득합니다.
abstract  CollationKey getCollationKey (String  source)
          String 를, 다른 CollationKey 와 비트 단위로 비교 가능한 비트열로 변환합니다.
 int getDecomposition ()
          Collator 의 분해 모드를 취득합니다.
static Collator getInstance ()
          현재의 디폴트 로케일에 대한 Collator 를 취득합니다.
static Collator getInstance (Locale  desiredLocale)
          필요한 로케일의 Collator 를 취득합니다.
 int getStrength ()
          Collator 의 강함 속성을 돌려줍니다.
abstract  int hashCode ()
          Collator 의 해시 코드를 생성합니다.
 void setDecomposition (int decompositionMode)
          Collator 의 분해 모드를 설정합니다.
 void setStrength (int newStrength)
          Collator 의 강함 속성을 돌려줍니다.
 
클래스 java.lang. Object 에서 상속받은 메소드
finalize , getClass , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

PRIMARY

public static final int PRIMARY
Collator 의 강함을 나타내는 값입니다. 이것을 설정하면(자), 비교 시에, PRIMARY 의 상위만이 상위라고 보여집니다. 언어 기능에의 강함의 할당은 로케일에 따라서 다릅니다. 공통의 예로서는 다른 기본 캐릭터 ("a" 와 "b")가 PRIMARY 의 상위라고 보여집니다.

관련 항목:
setStrength(int) , getStrength() , 정수 필드치

SECONDARY

public static final int SECONDARY
Collator 의 강함을 나타내는 값입니다. 이것을 설정하면(자), 비교 시에, SECONDARY 이상의 상위만이 상위라고 보여집니다. 언어 기능에의 강함의 할당은 로케일에 따라서 다릅니다. 공통의 예로서는 같은 기본 캐릭터의 엑센트가 다른 형식 (a 와 ? )(이)가 SECONDARY 의 상위라고 보여집니다.

관련 항목:
setStrength(int) , getStrength() , 정수 필드치

TERTIARY

public static final int TERTIARY
Collator 의 강함을 나타내는 값입니다. 이것을 설정하면(자), 비교 시에, TERTIARY 의 상위만이 상위라고 보여집니다. 언어 기능에의 강함의 할당은 로케일에 따라서 다릅니다. 공통의 예로서는 케이스의 차이 ("a" 와 "A")가 TERTIARY 의 상위라고 보여집니다.

관련 항목:
setStrength(int) , getStrength() , 정수 필드치

IDENTICAL

public static final int IDENTICAL
Collator 의 강함을 나타내는 값입니다. 이것을 설정하면(자), 비교 시에, 모든 상위가 상위라고 보여집니다. 언어 기능에의 강함의 할당은 로케일에 따라서 다릅니다. 공통의 예로서는 제어 캐릭터 (\u0001 와 \u0002)가 PRIMARY, SECONDARY, TERTIARY 로 동일하다고 보여져 IDENTICAL 로 상위라고 보여집니다. 게다가 \u00C0 (A-저엑센트 기호)등의 사전 합성 끝난 엑센트와 A\u0300 (A, 결합저엑센트 기호)등의 결합 엑센트의 상위는 분해가 NO_DECOMPOSITION 로 설정되어 있는 경우에는 3 차적 (tertiary)인 레벨로 상위라고 보여집니다.

관련 항목:
정수 필드치

NO_DECOMPOSITION

public static final int NO_DECOMPOSITION
분해 모드치입니다. NO_DECOMPOSITION 를 설정하면(자), 엑센트가 붙은 캐릭터를 조합을 위해서(때문에) 분해하는 것은 하지 않습니다. 이것이 디폴트의 설정이며, 조합은 최고 속도입니다만, 엑센트 기호를 사용하지 않는 언어의 경우로 밖에 올바른 결과는 얻을 수 있지 않습니다.

관련 항목:
getDecomposition() , setDecomposition(int) , 정수 필드치

CANONICAL_DECOMPOSITION

public static final int CANONICAL_DECOMPOSITION
분해 모드치입니다. CANONICAL_DECOMPOSITION 를 설정하면(자), Unicode 2.0 으로 표준적인 형식으로 여겨지는 캐릭터는 조합을 위해서(때문에) 분해됩니다. 엑센트 첨부의 캐릭터를 올바르게 조합하려면 , 이것을 사용하지 않으면 안됩니다.

CANONICAL_DECOMPOSITION 는 「Unicode Technical Report #15」로 설명되고 있는 Normalization Form D 에 상당합니다.

관련 항목:
getDecomposition() , setDecomposition(int) , 정수 필드치

FULL_DECOMPOSITION

public static final int FULL_DECOMPOSITION
분해 모드치입니다. FULL_DECOMPOSITION 를 설정하면(자), Unicode 표준 형식과 Unicode 호환 형식이 양쪽 모두, 조합을 위해서(때문에) 분해됩니다. 이 경우, 엑센트 첨부의 캐릭터가 조합될 뿐만 아니라, 특별한 형식을 가지는 캐릭터도 그 통상의 형식에서 조합됩니다. 예를 들어, 반폭과 완전폭의 ASCII 캐릭터와 카타카나 캐릭터가 함께 조합됩니다. FULL_DECOMPOSITION 는 가장 완전한 방식에서, 가장 늦은 분해 모드입니다.

FULL_DECOMPOSITION 는 「Unicode Technical Report #15」로 설명되고 있는 Normalization Form KD 에 상당합니다.

관련 항목:
getDecomposition() , setDecomposition(int) , 정수 필드치
생성자의 상세

Collator

protected Collator()
디폴트의 constructor 입니다. 이 constructor 은 protected 이므로, 서브 클래스로부터 액세스 할 수가 있습니다. Collator 서브 클래스를 작성하려면 , 유저는 일반적으로 팩토리 메소드의 getInstance 를 호출합니다.

관련 항목:
getInstance()
메소드의 상세

getInstance

public static Collator  getInstance()
현재의 디폴트 로케일에 대한 Collator 를 취득합니다. 디폴트 로케일은 java.util.Locale.getDefault 에 의해 판정할 수가 있습니다.

반환값:
디폴트 로케일의 Collator (예를 들어 en_US)
관련 항목:
Locale.getDefault()

getInstance

public static Collator  getInstance(Locale  desiredLocale)
필요한 로케일의 Collator 를 취득합니다.

파라미터:
desiredLocale - 필요한 로케일
반환값:
필요한 로케일의 Collator
관련 항목:
Locale , ResourceBundle

compare

public abstract int compare(String  source,
                            String  target)
Collator 의 조합 룰에 따라, 소스 캐릭터 라인과 타겟 캐릭터 라인을 비교합니다. 소스 캐릭터 라인이 타겟 캐릭터 라인에 대해서 작은지 동일한지 큰 것처럼 따라, 제로보다 작은지 동일한지 큰 정수를 돌려줍니다. 사용예에 대해서는 Collator 클래스의 설명을 참조해 주세요.

1 회만의 비교이면, 이 메소드의 퍼포먼스가 가장 우수합니다. 지정된 캐릭터 라인으로 여러 차례의 비교가 필요하면, CollationKey.compareTo 의 퍼포먼스가 가장 우수합니다. CollationKey 의 사용예에 대해서는 Collator 클래스의 설명을 참조해 주세요.

파라미터:
source - 소스 캐릭터 라인
target - 타겟 캐릭터 라인
반환값:
정수치. 소스가 타겟보다 작으면, 값은 제로보다 작다. 소스가 타겟으로 동일하면, 값은 제로. 소스가 타겟보다 크면, 값은 제로보다 큰
관련 항목:
CollationKey , getCollationKey(java.lang.String)

compare

public int compare(Object  o1,
                   Object  o2)
순서부를 위해서(때문에) 2 개의 인수를 비교합니다. 최초의 인수가 2 번째의 인수보다 작은 경우는 부의 정수, 양쪽 모두가 동일한 경우는 0, 최초의 인수가 2 번째의 인수보다 큰 경우는 정의 정수를 돌려줍니다.

이 구현은 단순하게 다음의 코드를 돌려줍니다. compare((String) o1, (String) o2)

정의:
인터페이스 Comparator 내의 compare
파라미터:
o1 - 비교 대상의 최초의 오브젝트
o2 - 비교 대상의 2 번째의 오브젝트
반환값:
최초의 인수가 2 번째의 인수보다 작은 경우는 부의 정수, 양쪽 모두가 동일한 경우는 0, 최초의 인수가 2 번째의 인수보다 큰 경우는 정의 정수
예외:
ClassCastException - 인수를 String 에 캐스트 할 수 없는 경우
도입된 버젼:
1.2
관련 항목:
Comparator

getCollationKey

public abstract CollationKey  getCollationKey(String  source)
String 를, 다른 CollationKey 와 비트 단위로 비교 가능한 비트열로 변환합니다. String 로 여러 차례의 비교가 필요한 경우는 Collator.compare 보다 CollationKey 의 퍼포먼스가 우수합니다. CollationKey 의 사용예에 대해서는 Collator 클래스의 설명을 참조해 주세요.

파라미터:
source - 조합 키로 변환하는 캐릭터 라인
반환값:
Collator 의 조합 룰에 근거하는 지정된 String 에 대한 CollationKey. 소스 String 가 null 의 경우는 null 의 CollationKey 가 돌려주어지는
관련 항목:
CollationKey , compare(java.lang.String, java.lang.String)

equals

public boolean equals(String  source,
                      String  target)
Collator 의 조합 룰에 따라 2 개의 캐릭터 라인이 동일한지 어떤지를 비교하기 위한 간이 메소드입니다.

파라미터:
source - 비교 대상의 소스 캐릭터 라인
target - 비교 대상의 타겟 캐릭터 라인
반환값:
조합 룰에 따라 그러한 캐릭터 라인이 동일한 경우는 true, 그렇지 않은 경우는 false
관련 항목:
compare(java.lang.String, java.lang.String)

getStrength

public int getStrength()
Collator 의 강함 속성을 돌려줍니다. 강함 속성에 의해, 비교 시에 상위라고 보는 최소 레벨이 정해집니다. 사용예에 대해서는 Collator 클래스의 설명을 참조해 주세요.

반환값:
Collator 의 현재의 강함 속성
관련 항목:
setStrength(int) , PRIMARY , SECONDARY , TERTIARY , IDENTICAL

setStrength

public void setStrength(int newStrength)
Collator 의 강함 속성을 돌려줍니다. 강함 속성에 의해, 비교 시에 상위라고 보는 최소 레벨이 정해집니다. 사용예에 대해서는 Collator 클래스의 설명을 참조해 주세요.

예외:
IllegalArgumentException - 새로운 강함을 나타내는 값이 PRIMARY, SECONDARY, TERTIARY, IDENTICAL 의 어떤 것도 아닌 경우
관련 항목:
getStrength() , PRIMARY , SECONDARY , TERTIARY , IDENTICAL

getDecomposition

public int getDecomposition()
Collator 의 분해 모드를 취득합니다. 분해 모드에 의해, Unicode 로 구성된 캐릭터를 어떻게 처리할지가 정해집니다. 분해 모드를 조정하면, 빠른 조합 동작과 완전한 조합 동작동안에서 필요한 것을 선택할 수가 있습니다.

분해 모드에는 다음의 3 개의 값이 있습니다.

이러한 의미에 대해서는 이러한 정수의 설명을 참조해 주세요.

반환값:
분해 모드
관련 항목:
setDecomposition(int) , NO_DECOMPOSITION , CANONICAL_DECOMPOSITION , FULL_DECOMPOSITION

setDecomposition

public void setDecomposition(int decompositionMode)
Collator 의 분해 모드를 설정합니다. 분해 모드의 설명에 대해서는 getDecomposition 를 참조해 주세요.

예외:
IllegalArgumentException - 지정된 값이 유효한 분해 모드가 아닌 경우
관련 항목:
getDecomposition() , NO_DECOMPOSITION , CANONICAL_DECOMPOSITION , FULL_DECOMPOSITION

getAvailableLocales

public static Locale [] getAvailableLocales()
Collator 가 도입되고 있는 로케일 세트를 취득합니다.

반환값:
Collator 가 도입되고 있는 사용 가능한 로케일의 리스트

clone

public Object  clone()
Cloneable 를 오버라이드(override) 합니다.

오버라이드(override):
클래스 Object 내의 clone
반환값:
이 인스턴스의 복제
관련 항목:
Cloneable

equals

public boolean equals(Object  that)
2 개의 Collator 가 동일한지 어떤지를 비교합니다.

정의:
인터페이스 Comparator 내의 equals
오버라이드(override):
클래스 Object 내의 equals
파라미터:
that - 비교 대조의 Collator
반환값:
이 Collator 가 지정된 Collator 와 동일한 경우는 true, 그렇지 않은 경우는 false
관련 항목:
Object.equals(java.lang.Object) , Object.hashCode()

hashCode

public abstract int hashCode()
Collator 의 해시 코드를 생성합니다.

오버라이드(override):
클래스 Object 내의 hashCode
반환값:
이 오브젝트의 해시 코드치
관련 항목:
Object.equals(java.lang.Object) , Hashtable

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

버그의 보고와 기능의 리퀘스트
이외의 API 레퍼런스 및 개발자용 문서에 대해서는 Java 2 SDK SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.