CollationElementIterator

CollationElementIterator (조합 요소 반복자)

국제 문자열의 각 문자를 순회하며, 위치한 문자의 정렬 우선순위(ordering priority)를 반환하는 데 쓰는 반복자 클래스예요. 우리가 key라고 부르는 문자의 정렬 우선순위는, 주어진 조합(collation) 객체에서 그 문자가 어떻게 정렬되는지를 정의해요.

출처: Java API Reference

본문

예를 들어 스페인어를 생각해 볼게요.

  • "ca" → 첫 key는 key('c'), 두 번째 key는 key('a')
  • "cha" → 첫 key는 key('ch'), 두 번째 key는 key('a')

독일어에서는 "äb" → 첫 key는 key('a'), 두 번째 key는 key('e'), 세 번째 key는 key('b')예요.

문자의 key는 기본 순서(primary order, short), 보조 순서(secondary order, byte), 3차 순서(tertiary order, byte)로 구성된 정수예요. Java는 기본 타입의 크기와 부호를 엄격히 정의하므로, primaryOrder, secondaryOrder, tertiaryOrder 정적 함수는 key 값의 정확성을 보장하기 위해 각각 int, short, short를 반환해요.

반복자 사용 예시예요.

String testString = "This is a test";
Collator col = Collator.getInstance();
if (col instanceof RuleBasedCollator ruleBasedCollator) {
    CollationElementIterator collationElementIterator =
        ruleBasedCollator.getCollationElementIterator(testString);
    int primaryOrder = CollationElementIterator.primaryOrder(collationElementIterator.next());
    ...
}

CollationElementIterator.next()는 다음 문자의 조합 순서를 반환해요. 조합 순서는 기본 순서, 보조 순서, 3차 순서로 구성되며 데이터 타입은 int예요. 조합 순서의 처음 16비트는 기본 순서, 다음 8비트는 보조 순서, 마지막 8비트는 3차 순서예요.

참고: CollationElementIteratorRuleBasedCollator 구현의 일부예요. RuleBasedCollator 인스턴스에서만 사용할 수 있어요.

더 알아보기 (Learn more)

Java 공식 API