JavaTM Platform
Standard Ed. 6

java.text
클래스 Normalizer

java.lang.Object 
  상위를 확장 java.text.Normalizer


public final class Normalizer
extends Object

이 클래스는, 텍스트의 소트나 검색이 용이하게 되도록(듯이) Unicode 텍스트를 그것과 등가인 합성 형식 또는 분해 형식으로 변환하는,normalize 메소드를 제공합니다. normalize 메소드는,「Unicode Standard Annex #15 — Unicode Normalization Forms」에 기술되고 있는 표준의 정규화 형식을 지원하고 있습니다.  

Unicode 에서는, 엑센트등의 수식이 붙은 문자를 몇개의 방법으로 encode 할 수 있습니다. 문자 A-acute 를 예를 들어 봅시다. 이것은, Unicode 에서는 단일의 문자 (합성 형식)로서 encode 할 수 있습니다.

      U+00C1    LATIN CAPITAL LETTER A WITH ACUTE

또는, 2 개의 독립한 문자 (분해 형식)로서 encode 할 수 있습니다.

      U+0041    LATIN CAPITAL LETTER A
      U+0301    COMBINING ACUTE ACCENT

다만, 프로그램의 사용자에게 있어서는, 어느 쪽의 순서도, 사용자 레벨에서는 같은 문자 「acute 엑센트 첨부의 A」로서 다루어져야 합니다. 텍스트의 검색이나 비교를 실시할 때, 이것들 2 개의 순서가 등가로 취급해지는 것을 확인할 필요가 있습니다. 또, 복수의 엑센트를 가지는 문자도 처리할 필요가 있습니다. 문자의 결합 엑센트의 순서가 중요하게 되는 경우도 있으면, 엑센트의 순서가 달라도 실제로는 등가가 되는 경우도 있습니다.  

같이 캐릭터 라인 「ffi」는, 3 개의 독립한 문자로서 encode 할 수 있습니다.

      U+0066    LATIN SMALL LETTER F
      U+0066    LATIN SMALL LETTER F
      U+0069    LATIN SMALL LETTER I

또는, 단일의 문자로서 encode 할 수 있습니다.

      U+FB03    LATIN SMALL LIGATURE FFI

합자 ffi 는, 구별 가능한 의미상의 문자는 아니고, 엄밀하게는 Unicode 에 포함되어야 하는 것이 아닙니다. 다만, 기존의 캐릭터 세트로 벌써 제공되고 있기 (위해)때문에, 그 호환성을 위해서(때문에) 포함되어 있습니다. Unicode 표준에서는, 이러한 문자를, 거기에 대응하는 의미상의 문자에 「호환」분해하는 것에 의해 식별합니다. 검색이나 비교를 실시할 때, 이러한 매핑을 사용할 필요가 자주 발생하겠지요.  

상기의 최초의 예로 가리킨 것처럼,normalize 메소드로 텍스트를 정규 합성 형식 또는 정규 분해 형식으로 변환하면(자), 이러한 문제를 해결하는데 도움이 됩니다. 또, 이 메소드로 호환 분해를 실행해, 호환 문자를 그 등가인 문자와 같은 것으로서 취급할 수도 있습니다. 게다가normalize 메소드는 엑센트를 적절한 정규의 순서에 늘어놓고 바꾸므로, 사용자가 엑센트의 늘어놓고 대체에 대해 걱정할 필요는 없습니다.  

W3C 에서는, NFC 로 텍스트를 교환하도록(듯이) 일반적으로 추천 하고 있습니다. 또, 종래의 문자 인코딩의 대부분은 사전 합성 형식만을 사용해, 그 자체에서는 연결 마크의 encode를 실시하지 않는 경우가 자주 있습니다. 이러한 문자 인코딩에의 변환을 실시하려면 , Unicode 텍스트를 NFC 에 정규화할 필요가 있습니다. 사용예에 대해서는, 「Unicode Standard Annex」를 참조해 주세요.

도입된 버젼:
1.6

상자의 클래스의 개요
static class Normalizer.Form
          이 열거는,「Unicode Standard Annex #15 — Unicode Normalization Forms」에 기술되고 있는 4 개의 Unicode 정규화 형식의 정수와 그것들에 액세스하기 위한 2 개의 메소드를 제공합니다.
 
메소드의 개요
static boolean isNormalized (CharSequence  src, Normalizer.Form  form)
          지정된 char 값의 순서가 정규화되고 있는지 어떤지를 판정합니다.
static String normalize (CharSequence  src, Normalizer.Form  form)
          char 값의 순서를 정규화합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

메소드의 상세

normalize

public static String  normalize(CharSequence  src,
                               Normalizer.Form  form)
char 값의 순서를 정규화합니다. 순서는, 지정된 정규화 형식에 따라 정규화됩니다.

파라미터:
src - 정규화하는 char 값의 순서
form - 다음의 몇개의 정규화 형식. Normalizer.Form.NFC , Normalizer.Form.NFD , Normalizer.Form.NFKC , Normalizer.Form.NFKD
반환값:
정규화된 캐릭터 라인
예외:
NullPointerException - src 또는 form 가 null 의 경우

isNormalized

public static boolean isNormalized(CharSequence  src,
                                   Normalizer.Form  form)
지정된 char 값의 순서가 정규화되고 있는지 어떤지를 판정합니다.

파라미터:
src - 체크 대상의 char 값의 순서
form - 다음의 몇개의 정규화 형식. Normalizer.Form.NFC , Normalizer.Form.NFD , Normalizer.Form.NFKC , Normalizer.Form.NFKD
반환값:
char 값의 순서가 정규화되고 있는 경우는 true, 그렇지 않은 경우는 false
예외:
NullPointerException - src 또는 form 가 null 의 경우

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 도 참조해 주세요.