JavaTM Platform
Standard Ed. 6

java.text
클래스 Collator

java.lang.Object 
  상위를 확장 java.text.Collator
모든 구현된 인터페이스:
Cloneable , Comparator <Object >
직계의 기존의 서브 클래스:
RuleBasedCollator


public abstract class Collator
extends Object
implements Comparator <Object >, Cloneable

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

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

로케일에 의존하는 것 외의 클래스와 같이, 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 를 사용하는 편이 좋은 퍼포먼스를 얻을 수 있습니다. CollationKeyString 를 비트열로 변환한 것이어, 다른 CollationKey 와 비트 단위로 비교할 수 있습니다. CollationKey 는, 특정의 String 에 대해서 Collator 객체에 의해 작성됩니다.

주: 다른 Collator 에 의해 작성된CollationKey 끼리는 비교할 수 없습니다. 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 ()
          디폴트의 생성자 입니다.
 
메소드의 개요
 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 ()
          이 클래스의 getInstance 메소드가 로컬라이즈 된 인스턴스를 돌려줄 수 있는 로케일 모든 배열을 돌려줍니다.
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 로 설정되어 있는 경우에는 IDENTICAL 로 상위로 간주해집니다.

관련 항목:
정수 필드치

NO_DECOMPOSITION

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

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

CANONICAL_DECOMPOSITION

public static final int CANONICAL_DECOMPOSITION
분해 모드치입니다. CANONICAL_DECOMPOSITION 를 설정하면(자), Unicode 표준으로 정규 형식으로 여겨지는 문자는, 조합을 위해서(때문에) 분해됩니다. 엑센트 첨부의 문자를 올바르게 조합하려면 , 이것을 사용할 필요가 있습니다.  

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()
디폴트의 생성자 입니다. 이 생성자 은 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 <Object > 내의 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 클래스의 설명을 참조해 주세요.

파라미터:
newStrength - 강함 속성의 새로운 값
예외:
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 를 참조해 주세요.

파라미터:
decompositionMode - 새로운 분해 모드
예외:
IllegalArgumentException - 지정된 값이 유효한 분해 모드가 아니다 경우
관련 항목:
getDecomposition() , NO_DECOMPOSITION , CANONICAL_DECOMPOSITION , FULL_DECOMPOSITION

getAvailableLocales

public static Locale [] getAvailableLocales()
이 클래스의 getInstance 메소드가 로컬라이즈 된 인스턴스를 돌려줄 수 있는 로케일 모든 배열을 돌려줍니다. 반환되는 배열은, Java 런타임 및 인스톨 되고 있는 CollatorProvider 구현에 의해 지원되고 있는 로케일의 화집합을 나타냅니다. 이것에는,Locale.US 와 등가인 Locale 인스턴스가 적어도 1 개(살) 포함되어 있을 필요가 있습니다.

반환값:
로컬라이즈 된 Collator 인스턴스를 사용 가능한 로케일의 배열

clone

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

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

equals

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

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

hashCode

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

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

JavaTM Platform
Standard Ed. 6

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

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.