Wednesday, November 28, 2012

문자열에서 한글 받침이 있나 없나 판별하는 법

방법 :
1. 문자열이 UTF-16이 아니라면, UTF-16으로 변환
2. 문자열의 마지막 2바이트 즉 마지막 글자를 얻어서
3. 그 글자의 값이 한글코드범위(AC00~D7A3)에 속하면서
    유니코드 한글 범위 : 0xAC00(44032) ~ 0xD7A3(55203)
4. (글자값 - AC00) % 28 가 0 이 아니라면 받침이 있는 것임

원리 :
    한글코드 = 종성 + 중성*28 + 초성*588 + 44032
인데 이를 다음과 같이 변형해보면
    한글코드-44032 = 종성 + 중성*28 + 초성*588
    한글코드-44032 = 종성 + (중성 + 초성*21)*28
와 같이 된다. 따라서
    종성=(한글코드-44032)%28
가 되는것임

키워드 : 종성 유무 판단
레퍼런스 :
문자열에서 한글 종성(받침) 유무 판별하기
한글 받침의 유무를 알아내는 법..?

1 comment: