[ 자바 ] 한글 초성 중성 종성 숫자 수치화 용-ILE/LANG-JAVA(JSP)2008. 5. 15. 19:53
http://suite.tistory.com/ 2007 5 fs
한글 EUC KR 에서 두글자만 integer 사이까지만 할 경우
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// java 자바로
//조건: unsiged integer 4바이트 최대값 2000000000로 보고 아래와 같이 글자들간에 차이가 나도록 필자 마음되로 지정
final int[] chosung = {660,1320,1980,2640,3300,3960,4620,5280,5940,6600,7260,7920,8580,9240,9900,10560,11200,11880,12540};
final int[] moeum = {30,60,90,120,150,180,210,240,270,300,330,360,390,420,450,480,510,540,570,600,630};
final int[] badchim = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27};
if (arg_str == null) return "";
String s=arg_str.trim();
value="";
int tmp = 0;
int n, n1, n2, n3;
char c;
// int 최대값 때문에 두글자만 i<2
for (int i = 0; i<s.length() && i < 2; i++) {
c = s.charAt(i);
n = (int)(c & 0xFFFF);
if (n >= 0xAC00 && n <= 0xD7A3) {
n = n - 0xAC00;
n1 = n / (21 * 28);
n = n % (21 * 28);
n2 = n / 28;
n3 = n % 28;
// 해당 초성 중성 종성 에 맞게 값을 합한다
tmp=chosung[n1] + moeum[n2] + badchim[n3];
//자리수 맞추기 위해
m_value_temp += new DecimalFormat("00000").format(tmp);
}
else {
// 한칸 스페이스 처리
if((int)c==32) m_value_temp += "00000";
// 한글 이외의 코드값을 숫자로 변형해서 넣는다 보통 ascill 값정도
else m_value_temp += (int)c;
}
}
return value;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ex) src: 하동군수
value:1257002931
올림 차순
정수가 아니라 실수기준이었다면 두글자 이상 수치화 가능
* 스크랫 시 덧글 센스
'용-ILE > LANG-JAVA(JSP)' 카테고리의 다른 글
[자바] XML 파서 getTextContent java 1.4 에서 사용하기 (0) | 2008.05.15 |
---|---|
[자바] java 로 키워드 통계 랭킹 리스트 만들기 (0) | 2008.05.15 |
[BLOB] 오라클 oracle blob 데이터 읽어서 파일로 저장 (0) | 2008.05.15 |
[ java ] jsp에서 mysql jdbc 심플하게 사용하는 class DBClass (0) | 2008.05.15 |
[ 자바 ] Runtime.exec: Too many open files | Process 객체 destroy() (0) | 2008.05.15 |