我如何获取字节数组的第一个“n”元素并将它们直接转换为字符串?

时间:2015-04-21 20:18:15

标签: java string byte bytearray

我有一个由1024个元素组成的字节数组。我想将其分解为不同的字符串私有成员(例如,名称的前9个字节,userID的后12个字节等)。

无需将整个字节数组转换为字符串然后使用子字符串方法,有没有什么方法可以将数组中的字节范围直接转换为我的类的私有成员?

E.g。

myObject.name = byteArr[0-9];
myObject.userId = byteArr[10-21];

2 个答案:

答案 0 :(得分:8)

使用:

String myField = new String(myArray, start, end);

如果你想从头开始,start将为0

答案 1 :(得分:6)

使用String构造函数:

public String(byte bytes[], int offset, int length, Charset charset)

示例:

myObject.name = new String(byteArr, 0, 10, Charset.defaultCharset())

请记住,字节和字符在Java中是不同的类型,您应该使用Charset类指定正确的转换,以避免意外结果。