首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将十六进制字符串转换为int

将十六进制字符串转换为int
EN

Stack Overflow用户
提问于 2012-06-26 01:46:06
回答 9查看 209.5K关注 0票数 121

我正在尝试将一个8个字符长度的十六进制代码的字符串转换为一个整数,这样我就可以进行int比较,而不是对许多不同的值进行字符串比较。

我知道这在C++中是相当微不足道的,但我需要用Java语言来做。我需要满足的测试用例基本上是将"AA0F245C“转换为整数,然后再转换回该字符串,这样我就知道它是正确转换的。

我尝试过以下几种方法:

代码语言:javascript
复制
int decode = Integer.decode("0xAA0F245C");  // NumberFormatException
int decode2 = Integer.decode("AA0F245C"); //NumberFormatException
int parseInt = Integer.parseInt("AA0F245C", 16); //NumberFormatException
int valueOf = Integer.valueOf("AA0F245C", 16); //NumberFormatException

我也尝试过一次使用两个字符,并将结果相乘,结果转换正常,但数字不正确。

代码语言:javascript
复制
int id = 0;
for (int h = 0; h < hex.length(); h= h+2)
{
    String sub = hex.subSequence(h, h+2).toString();

if (id == 0)
    id = Integer.valueOf(sub, 16);
else
    id *= Integer.valueOf(sub, 16);             
 }
//ID = 8445600 which = 80DEA0 if I convert it back. 

我不能使用第三方库,所以这必须在Java标准库中完成。

提前感谢您的帮助。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11194513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档