2011-12-19 121 views
1

我從相當長的一段時間開始瀏覽以獲得上述問題的正確解決方案。在Java中將十六進制字符串轉換爲基本36編碼字符串,反之亦然

我找不到Java語言中轉換/編碼的解決方案。

我需要將十六進制字符串編碼爲基本36格式的字符串。

例如,這些是樣本輸入和輸出。

ID和反轉B36編碼

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

建議的高度讚賞。

+1

什麼問題?你在哪裏與明顯的方法掙扎? – 2011-12-19 15:27:17

+0

正如@KerrekSB所暗示的,你有什麼嘗試?什麼與你嘗試過的沒有任何關係?你期望什麼以及你目前的嘗試發生了什麼? – cdeszaq 2011-12-19 15:28:51

+0

在線轉換 http://www.darkfader.net/toolbox/convert/ – 2011-12-19 15:29:37

回答

6

你試過:

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

它是'BigInteger'而不是'BigIngeger' – Niklas 2013-09-20 11:55:18

+0

@Niklas謝謝。固定。 – rossum 2013-09-21 20:57:22

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的耐心和幫助表示熱烈的掌聲。

相關問題