我有一个字节数组,它在数组末尾包含一个字符串,并且数组的开头用零填充。我使用以下代码将其转换为字符串:
String myText = new String(byteArray, "UTF-8");
但是,由于 0 填充,我在字符串前面添加了一堆奇怪的字符。我该如何摆脱它?
谢谢。
最佳答案
使用String(byte[], int, int, String)
构造函数。
第一个 int
是通过 byte[]
的偏移量:只需查找第一个非零字节;第二个 int
是字节数。因此,调用如下:
new String(
byteArray, firstNonNullByte, byteArray.length - firstNonNullByte, "UTF-8");
关于java - 如何在Java中将字节数组转换为字符串,并跳过所有空字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42574130/