36進数

Java で36進数変換を書いてみた。シーケンスとかコード生成まわりとかで使おうかなと。。。

/**
 * 36進数変換 long → String
 */

public static String long36String(long value){
   if (value==0) return "0";
   long v = value;
   StringBuilder sb = new StringBuilder();
   while(v > 0){
      int i = (int)(v % 36);
      if (i < 10){
         sb.append(i);
      }else{
         i += 'a' - 10;
         sb.append*1;
}
/**
 * 36進数変換 String → int
 */

public static int str36ToInt(String s){
   char[] c = s.toCharArray();
   int rtn=0;
   int k=0;
   for(int i=c.length-1;i > -1;i--){
      if ('0' <= c[i] && c[i] <= '9'){
         rtn += (c[i] - '0') * Math.pow(36,k);
      }else if('a' <= c[i] && c[i] <= 'z'){
         rtn += (c[i] - 'a' + 10) * Math.pow(36,k);
      }else if('A' <= c[i] && c[i] <= 'Z'){
         rtn += (c[i] - 'A' + 10) * Math.pow(36,k);
      }
      k++;
   }
   return rtn;
}

*1:char)i);
      }
      v = v / 36;
   }
   return new String(sb.reverse(