将Base64字符串转换为Java中的字节值字符串
问题描述:
我有一个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
这有效,但有没有更好的方法来做到这一点?
任何帮助,将不胜感激。 在此先感谢。
答
你可以使用这个DatatypeConverter
类:
String result =
DatatypeConverter.printHexBinary(DatatypeConverter
.parseBase64Binary("AAAC"));
System.out.println(result);
打印:000002
答
随着Guava library,这可能看起来像
BaseEncoding.base16().toUpperCase().withSeparator(" ", 2)
.encode(BaseEncoding.base64().decode(data));