▶ 뭉충닷컴
 
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 조회 수 13244 추천 수 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
번호 제목 글쓴이 날짜 조회 수
55 JAVA java poi 엑셀파일 다운로드시 암호 설정 [1] 뭉충닷컴 2017-10-18 841
54 JAVA xss 방어를 위한 설정 방법 뭉충닷컴 2017-03-31 118
53 JAVA 디렉토리안의 파일 목록 모두 가져오기 (하위 디렉토리 까지 포함) 뭉충닷컴 2014-01-08 3382
52 JAVA Invalid byte 1 of 1-byte UTF-8 sequence 오류 해결하기 뭉충닷컴 2013-11-27 3983
51 JAVA java.io.IOException: Server returned HTTP response code: 503 for URL: http://mybatis.org/dtd/mybatis-3-mapper.dtd 에러 해결 뭉충닷컴 2013-05-14 6950
50 JAVA HashCodeBuilder 뭉충닷컴 2012-12-14 4981
49 JAVA 파일사이즈를 읽기편하게 변환하기 뭉충닷컴 2012-11-30 5002
48 JAVA jstl 동적 변수 할당 뭉충닷컴 2012-11-27 8673
47 JAVA 이클립스 플러그인개발시 선택된 텍스트 뭉충닷컴 2012-11-21 5212
46 JAVA java에서 Runtime.exec() 실행시 grep 사용하기 뭉충닷컴 2012-11-01 7574
45 JAVA 자바에서 로그가 두번씩 찍힐 때 뭉충닷컴 2012-10-10 4745
44 JAVA xml 문자열을 node 객체로 만들기 뭉충닷컴 2012-09-24 4838
43 JAVA 자바빈에 있는 메서드명을 파라미터로 받아서 실행할 경우 뭉충닷컴 2012-08-31 4824
42 JAVA java로 리눅스/윈도우의 쉘명령어 실행시키기 뭉충닷컴 2012-06-12 9350
41 JAVA 개발자가 놓치기 쉬운 자바의 개념, 기본원리 뭉충닷컴 2012-03-01 15012
40 JAVA java.io.CharConversionException: EOF 뭉충닷컴 2012-01-30 11999
39 JAVA jar 분석 할때 사용하는 툴 file 뭉충닷컴 2012-01-30 7130
38 JAVA 하위디렉토리까지 찾아서 특정파일 찾아오기 뭉충닷컴 2012-01-18 5760
37 JAVA jvm 관련해서 쉽게 정리한 글 뭉충닷컴 2011-10-21 6277
» JAVA 한글 자소 분리 [1] 뭉충닷컴 2010-02-16 13244