Rumah > Java > javaTutorial > teks badan

Bagaimanakah saya boleh menukar tatasusunan bait kepada rentetan dan sebaliknya dalam Java?

Susan Sarandon
Lepaskan: 2024-11-09 05:19:02
asal
711 orang telah melayarinya

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

Penukaran Tatasusunan Byte

Java menyediakan pelbagai kaedah untuk menukar tatasusunan bait kepada rentetan dan sebaliknya. Penukaran ini penting untuk penghantaran dan manipulasi data. Satu senario biasa melibatkan penghantaran data bait melalui rangkaian dan membinanya semula pada bahagian penerima.

Anaonan Bait kepada Penukaran Rentetan

Untuk menukar tatasusunan bait kepada rentetan, kaedah Arrays.toString() boleh digunakan. Ia mengambil tatasusunan sebagai input dan mengembalikan perwakilan rentetan elemennya yang disertakan dalam kurungan segi empat sama. Contohnya:

byte[] data = new byte[] {4, 6, 8, 10};
String dataString = Arrays.toString(data); // prints [-44, 6, 8, 10]
Salin selepas log masuk

Penukaran Tatasusunan Rentetan ke Bait

Walau bagaimanapun, perwakilan rentetan ini tidak boleh ditukar terus kepada tatasusunan bait. Untuk mencapai ini, adalah perlu untuk menghuraikan nilai bait individu daripada rentetan. Satu pendekatan ialah menggunakan kaedah String.split() untuk memisahkan nilai bait dan kemudian menghuraikannya menggunakan kaedah 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());
}
Salin selepas log masuk

Penyelesaian Alternatif

Sebagai alternatif, kelas ByteBuffer boleh digunakan untuk melaksanakan penukaran tatasusunan bait dengan cekap. Ia menyediakan kaedah seperti wrap() untuk mencipta penimbal daripada tatasusunan bait dan tatasusunan() untuk mendapatkan tatasusunan bait asas daripada penimbal.

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
Salin selepas log masuk

Nota: Arrays.toString () kaedah juga boleh digunakan dengan tatasusunan primitif, seperti int, berganda dan panjang, untuk menjana perwakilan rentetan bagi elemennya. Walau bagaimanapun, penukaran kembali kepada tatasusunan jenis primitif memerlukan mekanisme penghuraian tambahan, yang khusus bahasa dan berbeza-beza bergantung pada jenis.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar tatasusunan bait kepada rentetan dan sebaliknya dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan