我有类似这样的字节数组:
[77, 83, 65, 80, 79, 67, 32, 32, 32, 32, 32, 32, 32]
大致等于
[M , S, A, P, O, C, , , , , , , ] when printed as chars.
现在我想修剪尾随的空格,使其看起来像:
[77, 83, 65, 80, 79, 67]
最简单的方法是什么?
编辑:我不想处理字符串,因为存在不可打印字节的可能性,而且我不能承受丢失该数据的后果。它需要是字节数组 :( 每当我转换为字符串时,01 (SOH) 02 (STX) 等字节都会丢失。
编辑 2:只是为了澄清。如果我将字节数组转换为字符串,我会丢失数据吗?现在有点迷糊了。如果字节是不同的字符集怎么办?
最佳答案
不转换为字符串:
byte[] input = /* whatever */;
int i = input.length;
while (i-- > 0 && input[i] == 32) {}
byte[] output = new byte[i+1];
System.arraycopy(input, 0, output, 0, i+1);
测试:
关于Java - 从字节数组中修剪尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7668748/