public class TestDemo {
private static final String X36 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static final String[] X36_ARRAY = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z".split(",");
public static String tenToThirtySix(int num){
StringBuffer str = new StringBuffer();
if(num == 0 ){
str.append("0");
}
while ( num > 0){
str.append(X36_ARRAY[num % 36]);
num = num / 36;
}
return str.reverse().toString();
}
public static int thirtySixToTen(String str){
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
for (int i = 0; i < X36.length(); i++) {
map.put(X36.charAt(i), i);
}
int size = str.length();
int num = 0;
for(int i = 0; i< size; i++){
String char2Str = String.valueOf(str.charAt(i)).toUpperCase();
num = (int) (map.get(char2Str.charAt(0)) * Math.pow(36, size - i - 1) + num);
}
return num;
}
public static void main(String[] args) {
System.out.println(tenToThirtySix(56));
System.out.println(thirtySixToTen("BB"));
}
}