San*_*hav -1 java byte bytebuffer
我想将String转换"1B4322C2"为字节,但问题是,如果我使用getBytes()它将它转换为字符串的长度加倍的字节,我想将它们转换为字符串长度的一半.
例如,上面字符串的输出应该是 {0x1B , 0x43, 0x22, 0xC2}
谢谢
(我现在已经投票决定以副本结束,我应该首先完成...但是在这里留下这个答案是有意义的,直到问题被删除......)
是的,所以你真正想做的是解析十六进制字符串.
您应该查看Apache Commons Codec,它具有Hex正是为此目的的类.就个人而言,我对API并不满意,但这应该有效:
Hex hex = new Hex();
byte[] data = (byte[]) hex.decode(text);
Run Code Online (Sandbox Code Playgroud)
要么:
byte[] data = Hex.decodeHex(text.toCharArray());
Run Code Online (Sandbox Code Playgroud)
(就个人而言,我希望你可以使用,byte[] data = Hex.decodeHexString(text);但我们去...如果你愿意,你总是可以编写自己的包装方法.)
如果您不想使用第三方库,Stack Overflow上的其他地方有很多实现,例如这个.
| 归档时间: |
|
| 查看次数: |
2253 次 |
| 最近记录: |