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

我试图将一个长度为8个字符的十六进制代码的字符串转换为一个整数,以便我可以在很多不同的值上进行int比较而不是字符串比较 .

我知道这在C中相当简单,但我需要用Java来完成 . 我需要满足的测试用例主要是将“AA0F245C”转换为int然后再返回到该字符串,以便我知道它正在转换 .

我尝试过以下方法:

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

我也尝试过一次两个字符并将结果相乘,转换有效,但数字不正确 .

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标准库中完成 .

提前谢谢你的帮助 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值