位元組陣列轉換
Java 提供了各種方法將位元組陣列轉換為字串,反之亦然。這種轉換對於資料傳輸和操作至關重要。一個常見的場景是透過網路發送位元組資料並在接收端重建它。
位元組陣列到字串轉換
要將位元組陣列轉換為字串,可以使用 Arrays.toString() 方法。它接受一個陣列作為輸入,並傳回用方括號括起來的其元素的字串表示形式。例如:
byte[] data = new byte[] {4, 6, 8, 10}; String dataString = Arrays.toString(data); // prints [-44, 6, 8, 10]
字串到位元組數組轉換
但是,此字串表示形式無法直接轉換回位元組數組。為了實現這一點,有必要從字串中解析各個位元組值。一種方法是使用 String.split() 方法分隔位元組值,然後使用 Byte.parseByte() 方法解析它們。
String response = "[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]"; String[] byteValues = response.substring(1, response.length() - 1).split(","); byte[] bytes = new byte[byteValues.length]; for (int i = 0, len = bytes.length; i < len; i++) { bytes[i] = Byte.parseByte(byteValues[i].trim()); }
替代解決方案
或者,ByteBuffer 類別可用於有效執行位元組數組轉換。它提供了像wrap()這樣的方法來從位元組數組建立緩衝區,以及array()來從緩衝區檢索底層位元組數組。
byte[] data = new byte[] {4, 6, 8, 10}; ByteBuffer buffer = ByteBuffer.wrap(data); byte[] dataCopy = buffer.array(); // returns a copy of the original byte array
注意: Arrays.toString () 方法也可以與原始陣列(例如 int、double 和 long)一起使用,以產生其元素的字串表示形式。然而,轉換回原始類型數組需要額外的解析機制,這些機制是特定於語言的並且根據類型而變化。
以上是在 Java 中如何將位元組數組轉換為字串,反之亦然?的詳細內容。更多資訊請關注PHP中文網其他相關文章!