在Java中将十六进制字符串转换为基本36编码字符串,反之亦然

时间:2011-12-19 15:25:06

标签: java

我在很长一段时间内一直在为上述问题寻找合适的解决方案。

我无法在Java语言中找到转换/编码的解决方案。

我需要将十六进制字符串编码为基本36格式的字符串。

例如,这些是样本输入和输出。

ID和反向B36编码

3028354D8202028000000000,CHL58FYDITHJ83VN0G1 3028354D8202028000000001,DHL58FYDITHJ83VN0G1 3028354D8202028000000002,EHL58FYDITHJ83VN0G1

建议得到高度赞赏。

2 个答案:

答案 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的热烈掌声和帮助。