Java从字节数组中获取字符串

标签 java string byte arrays

我正在修改一个 java 程序,其中的处理程序接收 2 个字节数组 当我使用这样的一行代码打印这些数组时\

java.util.Arrays.toString(this.part1))

我得到这样的输出

[43, 83, 123, 97, 104, -10, -4, 124, -113, -56, 118, -23, -25, -13, -9, -85, 58, -66, -34, 38, -55, -28, -40, 125, 22, -83, -72, -93, 73, -117, -59, 72, 105, -17, 3, -53, 121, -21, -19, 103, 101, -71, 54, 37...

我知道这些字节数组包含一个字符串。我怎样才能从他们那里得到那根绳子? 这是代码

    public void readPacketData(PacketBuffer data) throws IOException
{
    this.field_149302_a = data.readByteArray();
    this.field_149301_b = data.readByteArray();
    String packet1 = (java.util.Arrays.toString(this.field_149302_a));
    String packet2 = (java.util.Arrays.toString(this.field_149301_b));

}

最佳答案

为了正确地将 Byte 数组转换为 String 格式,我们必须显式创建一个 String 对象并将 Byte 数组分配给它。你可以试试这个:

String str = new String(this.part1, "UTF-8"); //for UTF-8 encoding
System.out.println(str);

请注意,字节数组包含采用特殊编码的字符(您必须知道)。

关于Java从字节数组中获取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33200809/

相关文章:

java - JAAS 异常空用户名和密码

javascript - 检查一个数组的字符串是否作为另一个数组字符串的一部分出现

javascript - 在 JavaScript 中将两个字节转换为有符号 16 位整数

c - C 中的霍夫曼编码 : storing bytes and it's frequency reading it from a file,

c++ - 位交换和指针

java - 重新读取配置而不重启

java - 在 Jackson 对象映射器中自定义字段名称序列化

java - 将 Opencv hsv 转换为等同于 Matlab Hsv

java - GridWorld 中的移动算法

java - 为什么 drJava 在我的字符串上向我抛出一个错误?