Java:将固定大小的字节数组转换为可变长度的String

时间:2011-04-27 04:06:47

标签: java string bytearray

有没有办法将固定大小的字节数组转换为字符串而不迭代字节数组以查找字符串结束的位置?我遇到的问题是并非字节数组中的所有字节都是字符。我用0填充数组的末尾。如果我使用new String(byte[]),它会将0解释为字符串的一部分。是否有某个字符我可以填充byte [],而不是将它解释为String的一部分?

2 个答案:

答案 0 :(得分:3)

不,因为所有字节值都是字符串中的有效字符。您必须跟踪有效字节的数量,并使用构造函数的byte[], int, int版本。

如果您不想手动跟踪计数(可能是因为您正在逐步构建字节数组),请考虑使用ByteArrayOutputStream

答案 1 :(得分:2)

有一个String构造函数,它接受byte[],一个起始偏移量和一个长度作为参数 - 只需使用它来告诉String要包含哪些字节。