Преобразование шестнадцатеричной строки в строку, закодированную в 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 за его терпение и помощь.