한글 검색을 할때 초성만으로 완성된 음절을 사용해야 되는 경우가 있을수 있다. 

다음은 예시 화면이다.

 

 

 

한글 조합형 유니코드표

 

다음에 유니코드 표를 참조하면 아래와 같은 코드를 생성 가능하다

 

public class KoreanDecomposer {

    public static void main(String[] args) {
        String text = "초성테스트";
        for (char ch : text.toCharArray()) {
            System.out.println(decompose(ch));
        }
    }

    public static String decompose(char ch) {
        // 유니코드 상에서 한글 초성, 중성, 종성의 시작 위치
        int baseCode = 0xAC00;
        int choSungBase = 21 * 28;
        int jungSungBase = 28;

        if (ch < baseCode || ch > 0xD7A3) { // 한글 음절 범위 확인
            return String.valueOf(ch); // 한글 음절이 아닐 경우 원문 그대로 반환
        }

        int unicodeIndex = ch - baseCode;

        // 초성, 중성, 종성 분리
        char choSung = (char) (0x1100 + unicodeIndex / choSungBase);
        char jungSung = (char) (0x1161 + (unicodeIndex % choSungBase) / jungSungBase);
        char jongSung = (char) (0x11A7 + unicodeIndex % jungSungBase);

        if (jongSung == 0x11A7) { // 종성이 없을 경우
            return "" + choSung + jungSung;
        } else {
            return "" + choSung + jungSung + jongSung;
        }
    }
}

 

 

결과 페이지이다. 

'JAVA > Java Study' 카테고리의 다른 글

[동적 컴파일] 자바 동적 컴파일러  (0) 2024.12.18
[Java] Record  (0) 2024.10.30
[GIS] 1. Shp 파일  (1) 2024.09.06
[Java] Mvc 패턴 Model1 , Model2  (0) 2024.06.25
[Java] Virtual Thread  (0) 2024.06.05

+ Recent posts