我如何获取字节数组的第一个 "n" 元素并将它们直接转换为字符串?
How would I take the first "n" elements of a byte array and convert them directly into a string?
我有一个由 1024 个元素组成的字节数组。我想将其分解为不同的字符串私有成员(例如,名称的前 9 个字节,用户 ID 的后 12 个字节等)。
无需将整个字节数组转换为字符串然后使用子字符串方法,有什么方法可以将数组中的一系列字节直接转换为我的 class 的私有成员?
例如
myObject.name = byteArr[0-9];
myObject.userId = byteArr[10-21];
使用:
String myField = new String(myArray, start, end);
如果您想从头开始,start
将为 0
使用String
构造函数:
public String(byte bytes[], int offset, int length, Charset charset)
示例:
myObject.name = new String(byteArr, 0, 10, Charset.defaultCharset())
请记住,字节和字符在 Java 中是不同的类型,您应该使用 Charset
class 指定正确的转换以避免意外结果。
我有一个由 1024 个元素组成的字节数组。我想将其分解为不同的字符串私有成员(例如,名称的前 9 个字节,用户 ID 的后 12 个字节等)。
无需将整个字节数组转换为字符串然后使用子字符串方法,有什么方法可以将数组中的一系列字节直接转换为我的 class 的私有成员?
例如
myObject.name = byteArr[0-9];
myObject.userId = byteArr[10-21];
使用:
String myField = new String(myArray, start, end);
如果您想从头开始,start
将为 0
使用String
构造函数:
public String(byte bytes[], int offset, int length, Charset charset)
示例:
myObject.name = new String(byteArr, 0, 10, Charset.defaultCharset())
请记住,字节和字符在 Java 中是不同的类型,您应该使用 Charset
class 指定正确的转换以避免意外结果。