자바를 정확하게 모르는 상태에서 C언어 지식만으로 안드로이드 프로그래밍을 하다보니
아주 기초적인 부분에서 막히게 되네요..
String에서 한글, 영문 구분과 한글인경우 ㄱ,ㄴ .... 순으로 정렬을 하고 인덱스를 표시해주려는데
첫글자로 HEX코드 연산을 하려는데 어떤식으로 해야될지 모르겠습니다.
String에서 Integer로 변환은 되는데 이건 문자 자체 코드가 아니라 문자를 숫자로 변환하는 거라
문자 코드로 연산을 하고 싶은데 간단한 힌트 하나만 알려주시면 감사하겠습니다.
자답입니다.
google검색하다 보니 char 형은 그냥 int로 형변환 하면 된다고 되어 있어서 형변환해서 연산하는것으로 처리했더니 되네요.
유니코드로 출력되니까 한글완성형 유니코드를 기준으로 계산해서 인덱스를 가져오는 방식입니다.
String str = m_txtCode.getText().toString();
String[] jaum = {"ㄱ","ㄱ","ㄴ","ㄷ","ㄷ","ㄹ","ㅁ","ㅂ","ㅂ","ㅅ","ㅅ"," ","ㅈ","ㅈ","ㅊ","ㅋ","ㅌ","ㅍ","ㅎ"};
char ch = str.charAt(0);
int ich = (int)ch;
String hcode = String.format("%04x", ich);
Log.i("HexCode", hcode);
if( ich >= 0x0041 && ich <= 0x007A )
{
// 영문
}
else if( ich >= 0xAC00 && ich <= 0xD7A3 )
{
// 한글
int idx = (ich - 0xAC00) / 588;
Log.i("HCode idx", str +" : "+ idx + jaum[idx]);
}
else
{
// 기타
}
이런식으로 한글인덱스 만드는 작업인데 이렇게 안해도 될지 모르겠습니다만... 혹시 쉬운 방법이 있으면 좀 알려주세요.