1
考虑下面的例子:字符串为byte []和字节为String
String f="FF00000000000000";
byte[] bytes = DatatypeConverter.parseHexBinary(f);
String f2= new String (bytes);
我想要的输出为FF00000000000000
但它不是用这种方法工作。
考虑下面的例子:字符串为byte []和字节为String
String f="FF00000000000000";
byte[] bytes = DatatypeConverter.parseHexBinary(f);
String f2= new String (bytes);
我想要的输出为FF00000000000000
但它不是用这种方法工作。
您当前正试图解释字节,就好像它们是使用平台默认编码(UTF-8,ISO-8859-1或其他)编码的文本一样。这不是你真正想要做的 - 你想把它转换回十六进制。为此,只需看看你用于解析步骤的转换器,然后寻找类似的方法,即在相反的方向上工作。在这种情况下,你想printHexBinary
:
String f2 = DatatypeConverter.printHexBinary(bytes);
的“寻找原来的操作接近反向操作”的方法是,一般一个有用的......但是要知道,有时候你需要看看并联型,例如DataInputStream
/DataOutputStream
。当你发现自己完全使用不同类型的反向操作时,通常会有一些警告信号。 (这并不总是错,只是值得调查其他选项。)
可能的重复http://stackoverflow.com/questions/6684665/java-byte-array-to-string-to-byte-array – Smutje
什么是'DatatypeConverter'?可能它有一个相反的方法? – Stewart