Rumah >Java >javaTutorial >Bagaimanakah saya boleh menukar tatasusunan bait kepada rentetan dan sebaliknya dalam 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]
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()); }
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
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!