我正在修改一个 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/