如何从字节数组中取出前n个元素并将其直接转换为字符串?

8

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

在不必将整个字节数组转换为字符串,然后再使用子字符串方法的情况下,是否有办法直接将数组中的一系列字节转换为我的类的私有成员?

例如:

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

3
有时阅读文档可以非常有帮助 -.-。http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#String%28byte[],%20int,%20int%29 - user4668606
2个回答

14

使用:

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

如果你想从开头开始,start 应该为0。


9
使用String构造函数:
public String(byte bytes[], int offset, int length, Charset charset)

例子:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接