달력

5

« 2024/5 »

  • 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
  • 28
  • 29
  • 30
  • 31

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

    올림 차순



정수가 아니라 실수기준이었다면 두글자 이상 수치화 가능


* 스크랫 시 덧글 센스

 

:
Posted by mastar