【发布时间】:2016-02-13 16:24:49
【问题描述】:
我在将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)。然后我应该以字节值的形式发送给客户端。
提前致谢!
【问题讨论】:
-
hexaString.getBytes() ? :)
-
@Shark 看起来
OP正在尝试将值作为一个整体进行转换 -
@Shark , hexaString.getBytes() 这将给出字节数组。我想像 Reimeus 所说的那样将值作为一个整体进行转换
-
我理解这个问题,但它可以解决无法将字符串转换为字节的问题。在转换为整数之前尝试使用无符号字节/整数。除非你在我做之前解决它,否则我会在我回家时挖掘出一些处理字节的 Java 代码宝石 :) @Reimeus 谢谢你的帮助。