在java中将单个十六进制字符转换为其字节值
我有一个十六进制字符,说
char c = 'A';
将其转换为整数值的正确方法是什么?
int value =??;
assert(a == 10);
如果 a 是 int 或 byte,现在并不重要。
I have a single hexadecimal character, say
char c = 'A';
What's the proper way of converting that to its integer value
int value =??;
assert(a == 10);
Doesn't matter really for now if a is an int or a byte.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我不明白为什么你应该转换为字符串...事实上,这就是 parseInt 使用的:
公共静态 int 数字(char ch, int radix)
i don't see why you should have to convert to string... in fact this is what parseInt uses:
public static int digit(char ch, int radix)
不过我自己找到了。
Found it myself though.
(字节)Integer.parseInt("a", 16)
(byte)Integer.parseInt("a", 16)
看一下 Commons Codec,特别是 Hex 类。
http://commons.apache.org/ codec/apidocs/org/apache/commons/codec/binary/Hex.html
您应该能够使用 toDigit() 方法将十六进制字符数组或字符串转换为 int 值:
您需要捕获但解码器异常。
还有一些方法可以将 char[] 或 String 转换为相应的字节数组。
Take a look at Commons Codec and in particular the Hex class.
http://commons.apache.org/codec/apidocs/org/apache/commons/codec/binary/Hex.html
You should be able to convert a hex char array or string to an int value using the toDigit() method:
You'll need to catch DecoderException though.
There's also methods there to convert a char[] or String to the corresponding byte array as well.