java - 如何在Java中将字节数组转换为字符串,并跳过所有空字节?

标签 java arrays string

我有一个字节数组,它在数组末尾包含一个字符串,并且数组的开头用零填充。我使用以下代码将其转换为字符串:

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/

相关文章:

java - List.equals() 在重写 java.lang.Object.equals() 时是否执行了预期的行为?

java - 使用 Swing 让用户等待

python - 如何将没有换行符的大(3-4GB)文件读入 numpy 数组?

java - java中匹配子字符串

Android:如何在字符串定义中引用字符串

arrays - MATLAB:将字符串写入 Excel

java - 尝试运行 jBehave 场景时发生 ScenarioNotFoundException

arrays - 如何从 Array{Array{Int64,2},1} 转换为 Array{Int64,2}

arrays - Excel VBA 到 Excel 十进制精度

java - 仅限整数?