Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中字符串到字节的转换_Java_String_Byte - Fatal编程技术网

java中字符串到字节的转换

java中字符串到字节的转换,java,string,byte,Java,String,Byte,我在将字符串(包含十六进制值)转换为字节时遇到问题。就像下面的代码 String hexaString = "0xA1"; byte hexaByte = (byte)hexaString; 无法像此代码那样从字符串转换为字节(获取错误:无法从字符串转换为字节) 但我能做到这一点 byte hexaByte = (byte)0xA1; //this is giving output as -95 任何人请指导我如何做我喜欢的第一种方法(这也输出值-95)。因为,我将从db获得的最后两位数字,

我在将
字符串
(包含十六进制值)转换为
字节
时遇到问题。就像下面的代码

String hexaString = "0xA1";
byte hexaByte = (byte)hexaString;
无法像此代码那样从字符串转换为字节(获取错误:
无法从字符串转换为字节

但我能做到这一点

byte hexaByte = (byte)0xA1; //this is giving output as -95
任何人请指导我如何做我喜欢的第一种方法(这也输出值-95)。因为,我将从db获得的最后两位数字,我需要将其转换为十六进制(追加0x)。然后我应该以字节值的形式发送给客户机


提前谢谢

您可以执行以下操作:

byte hexaByte = Byte.parseByte("1A", 16);

其中16是基数(系统计数的基数),但如果该数字大于127,则会导致NumberFormatException。

如果需要能够使用0x前缀,
(字节)整数。解码(“0xA1”)
将做正确的事。

hexaString.getBytes()?:)@Shark看起来像是
OP
正在尝试将该值转换为@Shark,hexaString.getBytes()的完整副本,这将给出字节数组。我希望像Reimeus saidI一样将值转换为一个整体来理解这个问题,但它解决了无法将字符串转换为字节的问题。在强制转换为整数之前,请尝试使用无符号字节/整数。我回家后会找出一些处理字节的Java代码宝藏,除非你在我之前解决:)@Reimeus谢谢你帮(他)解决问题。我用“A1”值尝试了这个。这是一个例外,因为十六进制中的A1是161进制,高于127。你可以试试:byte hexaByte=(byte)Integer.parseInt(“A1”,16);但它返回了错误的值-需要将其解析为未签名。