본문 바로가기
개발공부/JAVA

[JAVA] 한글 자모 분리

by 양히◡̈ 2023. 9. 28.

한글의 자모를 분리해서 DB에 저장해야 될 일이 있을 때 사용할 수 있는 방법이다.

아래와 같이 메소드를 만들어 활용했다.

 

입력값 : 안녕하세요

출력값 : ㅇㅏㄴㄴㅕㅇㅎㅏㅅㅔㅇㅛ

 

자동완성 검색 기능 등을 이용할 때 활용하기 좋다.

 

 

 

 

 

 

 

 

String[] chosungs = {"ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ", "ㅂ", "ㅃ", "ㅅ", "ㅆ", "ㅇ" , "ㅈ", "ㅉ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ"};
String[] jungsungs = {"ㅏ", "ㅐ", "ㅑ", "ㅒ", "ㅓ", "ㅔ", "ㅕ", "ㅖ", "ㅗ", "ㅘ", "ㅙ", "ㅚ", "ㅛ", "ㅜ", "ㅝ", "ㅞ", "ㅟ", "ㅠ", "ㅡ", "ㅢ", "ㅣ"};
String[] jongsungs = {"", "ㄱ", "ㄲ", "ㄳ", "ㄴ", "ㄵ", "ㄶ", "ㄷ", "ㄹ", "ㄺ", "ㄻ", "ㄼ", "ㄽ", "ㄾ", "ㄿ", "ㅀ", "ㅁ", "ㅂ", "ㅄ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ"};
String result = "";
String keyword = "안녕하세요"; // 분리할 문자열

for (int i = 0; i < keyword.length(); i++) {
  int keywordUniBase = keyword.replaceAll("\\p{Z}", "").charAt(i) - 44032;
  char chosung = (char)(keywordUniBase / 28 / 21);
  char jungsung = (char)(keywordUniBase / 28 % 21);
  char jongsung = (char)(keywordUniBase % 28);

  result += chosungs[chosung] + jungsungs[jungsung] + jongsungs[jongsung];
  System.out.println(result);
}

 

'개발공부 > JAVA' 카테고리의 다른 글

[JAVA] 날짜 & 시간 유효성 검사  (0) 2023.12.10
Thread  (0) 2023.05.24
[JAVA] ArrayList 내부 구현  (0) 2022.09.26
[JAVA] System.out.println()을 쓰면 안 되는 이유  (1) 2022.09.26
[JAVA] String, StringBuilder, StringBuffer  (1) 2022.09.22

댓글