반응형

한글 초성(자음)으로 검색하는 방법에 대해 알아보려고 합니다.

숫자나 영문은 첫 글자로 검색을 하면 되는데, 한글 자음으로 검색을 하기 위해서는 조금의 작업이 필요합니다.

 


 

1. 한글 초성(자음) 리스트 만들기

List<String> index_list = new ArrayList<>();

index_list.add("ㄱ");    index_list.add("ㄴ");    index_list.add("ㄷ");    
index_list.add("ㄹ");    index_list.add("ㅁ");    index_list.add("ㅂ");
index_list.add("ㅅ");    index_list.add("ㅇ");    index_list.add("ㅈ");    
index_list.add("ㅊ");    index_list.add("ㅋ");    index_list.add("ㅌ");
index_list.add("ㅍ");    index_list.add("ㅎ");

- ArrayList로 "ㄱ ~ ㅎ" 을 저장합니다.

- index(초성/자음)에 번호를 매기기 위한 작업입니다.

 

 

2. HashMap에 문자 넣기

Map<Integer, String> index_map = new HashMap<>();

index_map.put(0, "가");  index_map.put(1, "나");  index_map.put(2, "다");  
index_map.put(3, "라");  index_map.put(4, "마");  index_map.put(5, "바");
index_map.put(6, "사");  index_map.put(7, "아");  index_map.put(8, "자");  
index_map.put(9, "차");  index_map.put(10, "카");  index_map.put(11, "타");
index_map.put(12, "파");  index_map.put(13, "하"); index_map.put(14, "힣");

- HashMap에 위의 리스트(index_list)와 같은 번호로 "가 ~ 하" + "" 까지 입력합니다.

- : 0번이므로 index_map.put(0, "가")를 입력하는 것입니다.

- "힣"을 넣는 이유는 "하" 이후의 범위를 지정하기 위함입니다. (하 ~ 힣 사이 문자)

 

 

3. 쿼리에 조건 추가하기

String index = "검색 자음";
int num = 0;
String whereSQL = "";

for( int i = 0; i < index_list.size(); i++ ) {

    if( index.equals(index_list.get(i)) ) {
    
        num = i;
        break;
        
    }
    
}

whereSQL = " word >= '" + index_map.get(num) + "' and word < '" + index_map.get(num+1) + "' ";

- 만약 index(자음) 값이 "ㄴ" 이라면, whereSQL 문은 아래와 같습니다.

 

whereSQL = " word >= '나' and word < '다' ";

- 따라서 초성이 "ㄴ"인 모든 문자가 검색됩니다. (예 : 나라, 농부, 눈사람 등)

 

 

 

이상으로 Java 언어로 한글 초성(자음) 검색 방법에 대해 알아보았습니다.

 


 

반응형