2015-04-17 40 views
0

我發現這個在線,它適用於我需要它,但我如何反轉它,這意味着如何將十六進制字符串轉換回字節[]?Java:如何將此字節[]轉換爲十六進制方法?

private static final char[] HEX_CHARS = { 
    '0', '1', '2' ,'3', '4', '5', '6', '7', '8', '9', 
    'a', 'b', 'c', 'd', 'e', 'f' 
}; 

public String toHexString(byte[] bytes) 
{ 
    StringBuilder sb = new StringBuilder(); 
    for(int i = 0; i < bytes.length; i++) { 
     byte b = bytes[i]; 
     sb.append(new char[] {HEX_CHARS[(b >> 4) & 0x0f], HEX_CHARS[b & 0x0f]}); 
    } 

    return sb.toString(); 
} 

回答

4

嘗試以下操作:

public static byte[] hexStringToByteArray(String s) { 
    int len = s.length(); 
    byte[] data = new byte[len/2]; 
    for (int i = 0; i < len; i += 2) { 
     data[i/2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) 
          + Character.digit(s.charAt(i+1), 16)); 
    } 
    return data; 
} 
+0

這偉大的工作。 – FOD

+0

樂於幫助。 –

相關問題