2014-10-27 130 views
1

我有一個Base64字符串,它是'AAAC',它在二進制中相當於3個字節(00000000 00000000 00000010)。將Base64字符串轉換爲Java中的字節值字符串

我想將'AAAC'轉換爲ASCII十六進制字節串以輸出類似'000002'的東西。

我在下面試過。

byte[] test = Base64.decode(data.getBytes()); 
StringBuilder sb = new StringBuilder(); 
for (byte b : test) { 
    sb.append(String.format("%02X ", b)); 
} 
System.out.println(sb.toString()); 
//Output: 00 00 02 

這有效,但有沒有更好的方法來做到這一點?

任何幫助,將不勝感激。 在此先感謝。

回答

2

你可以使用這個DatatypeConverter類:

String result = 
    DatatypeConverter.printHexBinary(DatatypeConverter 
     .parseBase64Binary("AAAC")); 

System.out.println(result); 

打印:000002

1

隨着Guava library,這可能看起來像

BaseEncoding.base16().toUpperCase().withSeparator(" ", 2) 
    .encode(BaseEncoding.base64().decode(data));