Преобразование шестнадцатеричной строки в строку, закодированную в base 36, и наоборот в Java

Я с некоторого времени занимаюсь серфингом для правильного решения вышеуказанного вопроса.

Я не мог найти решение для преобразования / кодирования на языке Java.

Мне нужно закодировать шестнадцатеричную строку в строку формата 36 base.

Например, это примеры входов и выходов.

Идентификатор и обратная кодировка B36

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

Предложения высоко ценятся.

2 ответа

Решение

Ты пытался:

String convertHexToBase36(String hex) {
  BigInteger big = new BigInteger(hex, 16);
  return big.toString(36);
}

Спасибо @rossum за вашу помощь и терпение.

Теперь я мог бы сделать преобразование из hex в 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 за его терпение и помощь.

Другие вопросы по тегам