▶ 뭉충닷컴
 
mungchung.com login
Site Search
My Space
주절주절...
공부방
쥔장소개
Board
자유게시판
유용한 정보
자료실
Programming
강좌 & Articles
Spring 3.0
프로그래밍 Tip
   -ASP
   -PHP
   -JavaScript
   -HTML
   -Java/JSP
   -Database
   -Crystal Report
   -Visual Basic
   -이클립스
   -리눅스
   -기타
Windows API (VB)
Spread Sheet 7.0
컴퓨터활용 Tip
Other things
StarCraft 전략
StarCraft 문서
김용(金庸)
Son Q & Dieda

한글 자소 분리

JAVA 조회 수 13287 추천 수 0 2010.02.16 18:43:25

자바 버젼임


출처 : http://levin01.tistory.com/573

http://blog.naver.com/rlaaudtnr8?Redirect=Log&logNo=50035063510


package util.jaso;

////////////////////////////////////////////////////////////////////////
// 한글 문자열을 초성/중성/종성으로 분리하여 출력 (UTF-8 버전)
// v1.0
////////////////////////////////////////////////////////////////////////

public class Jaso {

    // ㄱ      ㄲ      ㄴ      ㄷ      ㄸ      ㄹ      ㅁ      ㅂ      ㅃ      ㅅ      ㅆ      ㅇ      ㅈ      ㅉ      ㅊ      ㅋ      ㅌ      ㅍ      ㅎ
    final static char[] ChoSung   = { 0x3131, 0x3132, 0x3134, 0x3137, 0x3138, 0x3139, 0x3141, 0x3142, 0x3143, 0x3145, 0x3146, 0x3147, 0x3148, 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e };
    // ㅏ      ㅐ      ㅑ      ㅒ      ㅓ      ㅔ      ㅕ      ㅖ      ㅗ      ㅘ      ㅙ      ㅚ      ㅛ      ㅜ      ㅝ      ㅞ      ㅟ      ㅠ      ㅡ      ㅢ      ㅣ
    final static char[] JwungSung = { 0x314f, 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163 };
    // ㄱ      ㄲ      ㄳ      ㄴ      ㄵ      ㄶ      ㄷ      ㄹ      ㄺ      ㄻ      ㄼ      ㄽ      ㄾ      ㄿ      ㅀ      ㅁ      ㅂ      ㅄ      ㅅ      ㅆ      ㅇ      ㅈ      ㅊ      ㅋ      ㅌ      ㅍ      ㅎ
    final static char[] JongSung  = { 0,      0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140, 0x3141, 0x3142, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e };

    public static String hangulToJaso(String s) { // 유니코드 한글 문자열을 입력 받음

        int a, b, c; // 자소 버퍼: 초성/중성/종성 순
        String result = "";

        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);

            if (ch >= 0xAC00 && ch <= 0xD7A3) { // "AC00:가" ~ "D7A3:힣" 에 속한 글자면 분해
                c = ch - 0xAC00;
                a = c / (21 * 28);
                c = c % (21 * 28);
                b = c / 28;
                c = c % 28;

                result = result + ChoSung[a] + JwungSung[b];

                if (c != 0) result = result + JongSung[c] ; // c가 0이 아니면, 즉 받침이 있으면
            } else {
                result = result + ch;
            }
        }
        return result;
    }
}


댓글 '1'

javacoder

2012.06.14 16:02:56
*.180.213.110

필요해서 직접구현을하려고 하니 한글의 속성을 몰라서 많이 헤맸었는데

이렇게 좋은 소스가 있었네요

정말 감사합니다 ^^

문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
55 JAVA getRequestURL jsp / servlet / java 현재 경로 알아내기 뭉충닷컴 2009-11-09 30631
54 JAVA HashMap, TreeMap, Hashtable 사용법 정리 file 뭉충닷컴 2008-01-29 29683
53 JAVA 자바 소수점 자릿수 값 가져오기 뭉충닷컴 2010-01-14 19155
52 JAVA 자바에서 외부 프로그램 실행방법 [1] 뭉충닷컴 2009-05-08 17201
51 JAVA java의 xml document 의 노드 내용 읽기 뭉충닷컴 2009-11-03 16183
50 JAVA url 접속해서 html 내용 가져오기 뭉충닷컴 2009-05-06 16027
49 JAVA 개발자가 놓치기 쉬운 자바의 개념, 기본원리 뭉충닷컴 2012-03-01 15790
48 JAVA BLOB으로 저장된 사진정보 파일로 받기 이영진 2007-08-31 14804
47 JAVA classes12와 ojdbc14의 CLOB 처리 비교 이영진 2007-08-30 13761
46 JAVA Java 형변환 정리 뭉충닷컴 2008-02-06 13421
» JAVA 한글 자소 분리 [1] 뭉충닷컴 2010-02-16 13287
44 JAVA WEB-INF 의 실제 경로 구하기 뭉충닷컴 2009-04-09 13006
43 JAVA StyledText 에 undo/redo 기능 넣기 뭉충닷컴 2009-06-05 12512
42 JAVA java.io.CharConversionException: EOF 뭉충닷컴 2012-01-30 12184
41 JAVA http 인증 하기 뭉충닷컴 2009-09-03 12092
40 JAVA java, infix를 postfix로 만들기 file 뭉충닷컴 2007-04-05 11949
39 JAVA [JOTM+Xapool] xapool 이용 시 Null Pointer Exception 문제 해결 file 뭉충닷컴 2009-11-10 11861
38 JAVA 오늘 날짜 구하기 뭉충닷컴 2008-02-22 11272
37 JAVA value 값이 Ljava.lang.String 형일 때 실제 값 보기 뭉충닷컴 2008-01-29 10913
36 JAVA xml document의 내용 뿌리기 뭉충닷컴 2009-09-28 10881