我在很长一段时间内一直在为上述问题寻找合适的解决方案。
我无法在Java语言中找到转换/编码的解决方案。
我需要将十六进制字符串编码为基本36格式的字符串。
例如,这些是样本输入和输出。
ID和反向B36编码
3028354D8202028000000000,CHL58FYDITHJ83VN0G1 3028354D8202028000000001,DHL58FYDITHJ83VN0G1 3028354D8202028000000002,EHL58FYDITHJ83VN0G1
建议得到高度赞赏。
答案 0 :(得分:9)
你试过了吗?
String convertHexToBase36(String hex) {
BigInteger big = new BigInteger(hex, 16);
return big.toString(36);
}
答案 1 :(得分:1)
感谢@rossum的帮助和耐心。
我现在可以按照我的要求从十六进制转换为base36,反之亦然。
public static String convertHexToBase36(String hex)
{
BigInteger big = new BigInteger(hex, 16);
StringBuilder sb = new StringBuilder(big.toString(36));
return sb.reverse().toString();
}
public static String convertBase36ToHex(String b36)
{
StringBuilder sb = new StringBuilder(b36);
BigInteger base = new BigInteger(sb.reverse().toString(), 36);
return base.toString(16);
}
我刚刚反向B36编码。 对@rossum的热烈掌声和帮助。