Java - 从字节数组中修剪尾随空格

标签 java

我有类似这样的字节数组:

[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/

相关文章:

java - 如何打包和部署 Eclipse Java 应用程序?

javascript - 通过 Apache 和 Tomcat 的 WebSocket 500 错误 : java. lang.UnsupportedOperationException:此协议(protocol)不支持 HTTP 升级

java - 更改 JFreeChart 的线条样式和颜色

java - 将透明复合 Material 置于 SWT 中的其他复合 Material 之上

java - 如何在没有实例或类名的情况下获取类对象

java - 未考虑执行中的 jsonschema2pojo maven 插件配置

java - Action 监听器错误

java - 在 JBoss EAP 6.2.0 中通过 JNDI 访问 HornetQ 连接工厂(本地)

java代码--如何检测浏览器是否打开

java - 我可以在不编译的情况下获得 C/C++/Java 代码的 XML AST 吗?