Java字符串到字节的转换不同

莱因哈德·李

全部

我有一个将字节数组发送到服务器的问题。

每个ID具有文本值。

private String ID = "0001";
byte STX = (byte)0x02;
byte A = (byte)0x41;
byte NUL = (byte)0x00;
byte ETX = (byte)0x03;
byte CR = (byte)0x0D;
byte LF = (byte)0x0A;
byte[] buffer = { STX, Byte.decode(ID), A, NUL, ETX, CR, LF };

我期望缓冲值

buffer [02, 48, 48, 48, 49, 65, 00, 0D, 0A]

但是缓冲区值有

buffer [02, 01, 65, 00, 0D, 0A]

如何将“ 0001”转换为[48,48,48,49],将字符串转换为十进制。

Sotirios Delimanolis

该方法Byte#decode(String)返回单个Byte元素,该元素作为元素添加到您的buffer数组中。

字符串"0001"表示八进制值00011

您将无法在{ }初始化表示法中使用一个变量添加多个数组元素

相反,您可以执行以下操作

String ID = "0001";
byte STX = (byte) 0x02;
byte A = (byte) 0x41;
byte NUL = (byte) 0x00;
byte ETX = (byte) 0x03;
byte CR = (byte) 0x0D;
byte LF = (byte) 0x0A;
List<Byte> bytes = new ArrayList<Byte>();
bytes.add(STX);
for (char c : ID.toCharArray()) {
    bytes.add((byte)c); 
}
bytes.addAll(Arrays.asList(A, NUL, ETX, CR, LF));

Byte[] buffer = (Byte[]) bytes.toArray(new Byte[0]);
System.out.println(Arrays.toString(buffer));

印刷

[2, 48, 48, 48, 49, 65, 0, 3, 13, 10]

请注意,当char值超出byte可以容纳的值范围时,此解决方案可能无法按预期工作

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java字符串到字节的转换不同

来自分类Dev

Java中的字符串到字节

来自分类Dev

字符串到字节的转换-如果已经是字节并将其作为字符串

来自分类Dev

Python最快的字节到字符串转换

来自分类Dev

C ++十六进制字符串到字节的转换

来自分类Dev

优化转换函数(字符串到字节)

来自分类Dev

Java字符串到长转换

来自分类Dev

转义的字节字符串到字节字符串

来自分类Dev

如何在Java中将一个字符串或多个字符串转换为字节数组中的不同范围?

来自分类Dev

base64转换字符串字节值的字符串在Java中

来自分类Dev

源字节数组转换为字符串,然后返回字节数组与源字节不同

来自分类Dev

将字符串转换为字节字符串

来自分类Dev

无法从字节转换为字符串

来自分类Dev

如何从字节转换为字符串?

来自分类Dev

字节字符串到长值

来自分类Dev

numpy字节到纯字符串

来自分类Dev

文件写入:字符串到字节

来自分类Dev

字节到人类可读的字符串

来自分类Dev

文件写入:字符串到字节

来自分类Dev

AES-如何将字节字符串转换为字节字节字符串?

来自分类Dev

将字节列表转换为字节字符串

来自分类Dev

将字节转换为带符号字节的字符串

来自分类Dev

从给定的字符串转换回字节/字节

来自分类Dev

未在Python 3中显式打开文件时处理从字节到字符串的转换

来自分类Dev

从字节到大无符号整数和字符串的转换

来自分类Dev

从字符串到字节数组的Strust2类型转换错误?

来自分类Dev

Python字符串到字节的转换。双反斜杠问题

来自分类Dev

字节数组到javascript中的十六进制字符串转换

来自分类Dev

未在Python 3中显式打开文件时处理从字节到字符串的转换

Related 相关文章

热门标签

归档