게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
안드로이드 코딩을 이해를 못하고 있습니다..도와주세요..
게시물ID : computer_89135짧은주소 복사하기
작성자 : 필혼
추천 : 0
조회수 : 507회
댓글수 : 1개
등록시간 : 2013/05/22 14:09:49

class SoundSearcher {

private static final char HANGUL_BEGIN_UNICODE = 44032;

private static final char HANGUL_LAST_UNICODE = 55203;

private static final char HANGUL_BASE_UNIT = 588;


private static final char[] INITIAL_SOUND = { 'ㄱ', 'ㄲ', 'ㄴ', 'ㄷ', 'ㄸ', 'ㄹ',

'ㅁ', 'ㅂ', 'ㅃ', 'ㅅ', 'ㅆ', 'ㅇ', 'ㅈ', 'ㅉ', 'ㅊ', 'ㅋ', 'ㅌ', 'ㅍ', 'ㅎ' };


private static boolean isInitialSound(char searchar) {

for (char c : INITIAL_SOUND) {

if (c == searchar) {

return true;

}

}

return false;

}


private static char getInitialSound(char c) {

int hanBegin = (c - HANGUL_BEGIN_UNICODE);

int index = hanBegin / HANGUL_BASE_UNIT;

return INITIAL_SOUND[index];

}


private static boolean isHangul(char c) {

return HANGUL_BEGIN_UNICODE <= c && c <= HANGUL_LAST_UNICODE;

}


public SoundSearcher() {

}


public static boolean matchString(String value, String search) {

int t = 0;

int seof = value.length() - search.length();

int slen = search.length();

if (seof < 0)

return false;

for (int i = 0; i <= seof; i++) {

t = 0;

while (t < slen) {

if (isInitialSound(search.charAt(t)) == true

&& isHangul(value.charAt(i + t))) {


if (getInitialSound(value.charAt(i + t)) == search

.charAt(t))

t++;

else

break;

} else {

if (value.charAt(i + t) == search.charAt(t))

t++;

else

break;

}

}

if (t == slen)

return true;

}

return false;

}

}


어플 검색기능에서 가져온건데..도통 뭔소린지...

크게는 글자를 입력하면 글자를 매칭에서 db를 가져오는건데..이걸 세부적으로 따지니깐

머리가 안돌아가네요..유니코드를 이용해서 한글값을 가져오고 비교해서 한글이 맞는지 확인하고..

또 뭐있는건지...하..이걸 어떻게 설명하라고 주신건지...도와주세요..오유님들...

꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호