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