[Lucene] Arirang에 구현된 한글 초성,중성,종성 변환
ITWeb/검색일반 2015. 11. 24. 17:35수명님이 이미 다 만들어 놓으셨는데 참 뒷북도 ㅡ.ㅡ;
일단 죄송합니다.
arirang-morph 프로젝트 내 MorphUtil 클래스에 구현되어 있습니다.
[한글 초성/중성/종성 분리]
/**
* 한글 한글자를 초성/중성/종성의 배열로 만들어 반환한다.
* @param c the character to be decomposed
*/
public static char[] decompose(char c) {
char[] result = null;
if(c>0xD7A3||c<0xAC00) return new char[]{c};
c -= 0xAC00;
char choseong = CHOSEONG[c/JUNG_JONG];
c = (char)(c % JUNG_JONG);
char jungseong = JUNGSEONG[c/JONGSEONG.length];
char jongseong = JONGSEONG[c%JONGSEONG.length];
if(jongseong != 0) {
result = new char[] {choseong, jungseong, jongseong};
}else {
result = new char[] {choseong, jungseong};
}
return result;
}
[한글 초성/중성/종성 합침]
public static char compound(int first, int middle, int last) {
return (char)(0xAC00 + first* JUNG_JONG + middle * JONGSEONG.length + last);
}