字节数组转换
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中文网其他相关文章!