首頁 >Java >java教程 >在 Java 中如何將位元組數組轉換為字串,反之亦然?

在 Java 中如何將位元組數組轉換為字串,反之亦然?

Susan Sarandon
Susan Sarandon原創
2024-11-09 05:19:02764瀏覽

How can I convert byte arrays to strings and vice versa in Java?

位元組陣列轉換

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn