한글 초성 찾기

2014. 9. 17. 17:01Programming

한글 초성 검색의 원리는 다음과 같다.

위키피디아 정의

초성 : 19자 - ㄱ, ㄲ, ㄴ, ㄷ, ㄸ, ㄹ, ㅁ, ㅂ, ㅃ, ㅅ, ㅆ, ㅇ, ㅈ, ㅉ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ

중성 : 21자 - ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ, ㅖ, ㅗ, ㅘ, ㅙ, ㅚ, ㅛ, ㅜ, ㅝ, ㅞ, ㅟ, ㅠ, ㅡ, ㅢ,ㅣ

종성 : 27자 - ㄱ, ㄲ, ㄳ, ㄴ, ㄵ, ㄶ, ㄷ, ㄹ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅁ, ㅂ, ㅄ, ㅅ, ㅆ, ㅇ, ㅈ, ㅊ, ㅋ, ㅌ, ㅍ, ㅎ


실제 구현규칙은

1. 중성이 바뀌는 경우 코드값의 차이가 28

2. 초성이 바뀌는 경우 코드값의 차이가 21 * 28

3. 한글에 대한 첫 코드값 ['가' : 44032]

이라고 할때

* 초성 : 글자 코드에서 44032를 빼고, 21*28로 나눈 ( 0 ~ 18 )

* 중성 : 글자 코드에서 44032를 빼고, 21*28로 나눈 나머지를 다시 28로 나눈 ( 0 ~ 20 )

* 종성 : 글자 코드에서 44032를 빼고, 21*28로 나눈 나머지를 다시 28로 나눈 나머지 ( 0 ~ 27 )


그런데 위에 있는 종성은 27자인데 왜 28로 나누느냐?

글자에서 종성은 없을 수도 있거든요. 즉 앞에 ' ' 공백이 더해져서 28자가 됩니다.


인터넷에 널리 퍼진 내용이지만 정리할 겸 해서 샘플 코드 첨부합니다.


Program.cs


'Programming' 카테고리의 다른 글

[펌] Github 튜토리얼  (0) 2014.09.13
루아로 현재 시간 얻어오기  (0) 2014.04.30
태국 날짜 간단히 확인하는 법  (0) 2014.04.30
맥 OSX에서 sublime text3 기본 셋팅하기  (0) 2014.04.29
JSON File Format  (0) 2014.04.18