我有一个Base64字符串,它是'AAAC',二进制相当于3字节(00000000 00000000 00000010)。
我想将'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
这样可行,但有更方便的方法吗?
任何帮助将不胜感激。 提前谢谢。
答案 0 :(得分:2)
您可以使用DatatypeConverter
类:
String result =
DatatypeConverter.printHexBinary(DatatypeConverter
.parseBase64Binary("AAAC"));
System.out.println(result);
打印:000002
答案 1 :(得分:1)
使用Guava library,这可能类似于
BaseEncoding.base16().toUpperCase().withSeparator(" ", 2)
.encode(BaseEncoding.base64().decode(data));