62,614
社区成员
发帖
与我相关
我的任务
分享
String temp = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//字符串顺序
String key = "1001D31000000001KDYQ";//共20位
package demo;
import java.math.BigInteger;
import java.util.HashMap;
public class Ten2Thirty {
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 tenTo36(BigInteger num) {
StringBuffer sBuffer = new StringBuffer();
if(num.compareTo(new BigInteger("0")) < 0) {
sBuffer.append("0");
}
while(num.compareTo(new BigInteger("0")) > 0) {
BigInteger[] arr=num.divideAndRemainder(new BigInteger("36"));
sBuffer.append(X36_ARRAY[Integer.parseInt(String.valueOf(arr[1]))]);
num = num.divide(new BigInteger("36"));
}
return sBuffer.reverse().toString();
}
public static BigInteger thirtysixToTen(String string) {
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
for (int i = 0; i < X36.length(); i++) {
map.put(X36.charAt(i), i);
}
int size = string.length();
BigInteger num = new BigInteger("0");
for(int i = 0; i<size; i++) {
String char2str = String.valueOf(string.charAt(i)).toUpperCase();
BigInteger pow = new BigInteger("36").pow(size - i - 1);
BigInteger getmap = new BigInteger(map.get(char2str.charAt(0))+"");
num = num.add(pow.multiply(getmap));
}
return num;
}
public static void main(String[] args) {
BigInteger ten = thirtysixToTen("FMT0Z000000000000000");
ten = ten.add(new BigInteger("1"));
System.out.println(tenTo36(ten));
}
}