java 中的字符串到字节
String to byte in java
我在将 String
(包含十六进制值)转换为 byte
时遇到问题。像下面的代码。
String hexaString = "0xA1";
byte hexaByte = (byte)hexaString;
无法像此代码那样从字符串转换为字节(获取错误:Cannot cast from String to byte
)。
但我可以这样做
byte hexaByte = (byte)0xA1; //this is giving output as -95
任何人请指导我如何像第一种方法那样做(这也输出值 -95)。因为,我将从 db 获得的最后两位数,我需要将其转换为十六进制(附加 0x)。然后我应该作为字节值发送给客户端。
提前致谢!
您可以这样做:
byte hexaByte = Byte.parseByte("1A", 16);
其中 16 是基数(系统计数的基数),但如果数字大于 127 将导致 NumberFormatException。
如果您需要能够使用 0x 前缀,(byte) Integer.decode("0xA1")
会做正确的事。
我在将 String
(包含十六进制值)转换为 byte
时遇到问题。像下面的代码。
String hexaString = "0xA1";
byte hexaByte = (byte)hexaString;
无法像此代码那样从字符串转换为字节(获取错误:Cannot cast from String to byte
)。
但我可以这样做
byte hexaByte = (byte)0xA1; //this is giving output as -95
任何人请指导我如何像第一种方法那样做(这也输出值 -95)。因为,我将从 db 获得的最后两位数,我需要将其转换为十六进制(附加 0x)。然后我应该作为字节值发送给客户端。
提前致谢!
您可以这样做:
byte hexaByte = Byte.parseByte("1A", 16);
其中 16 是基数(系统计数的基数),但如果数字大于 127 将导致 NumberFormatException。
如果您需要能够使用 0x 前缀,(byte) Integer.decode("0xA1")
会做正确的事。