我有一个类似的字节数组:
[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:澄清一下,如果将字节数组转换为字符串,会丢失数据吗?现在有点困惑,如果字节是不同的字符集呢?
6条答案
按热度按时间wkyowqbh1#
不转换为字符串:
测试:
[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]
zhte4eai2#
最简单的方法?没有效率或性能的保证,但它似乎很容易。
iovurdzv3#
text = text.replaceAll("\\s+$", ""); // remove only the trailing white space
bpzcxfmw4#
修改字符串
trim()
为byte[]
。它不仅削减了数组的尾部,而且还削减了头部。yi0zb3m45#
这里是@matt-ball答案的Kotlin版本。
如何使用瓦尔arrTrimmed =
i5desfxk6#