我有类似这样的字节数组:
[77, 83, 65, 80, 79, 67, 32, 32, 32, 32, 32, 32, 32]
Run Code Online (Sandbox Code Playgroud)
大致等于
[M , S, A, P, O, C, , , , , , , ] when printed as chars.
Run Code Online (Sandbox Code Playgroud)
现在我想修剪尾随空格,看起来像:
[77, 83, 65, 80, 79, 67]
Run Code Online (Sandbox Code Playgroud)
最简单的方法吗?
编辑:我不想处理字符串,因为有可能出现不可打印的字节,我不能丢失这些数据.它需要是字节数组:(每当我转换为字符串时,像01(SOH)02(STX)等字节丢失.
编辑2:只是为了澄清.如果我将字节数组转换为字符串,我会丢失数据吗?现在有点困惑.如果字节是不同的字符集怎么办?
Mat*_*all 17
无需转换为字符串:
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);
Run Code Online (Sandbox Code Playgroud)
[77, 83, 65, 80, 79, 67, 32, 32, 32, 32, 32, 32, 32]
→ [77, 83, 65, 80, 79, 67][77, 83, 65, 80, 79, 67] → [77, 83, 65, 80, 79, 67][32, 32, 32, 32, 32, 32, 32] → [][] → [][77, 83, 65, 80, 79, 67, 32, 32, 32, 32, 32, 32, 32, 80][77, 83, 65, 80, 79, 67, 32, 32, 32, 32, 32, 32, 32, 80]| 归档时间: |
|
| 查看次数: |
14706 次 |
| 最近记录: |