java中16进制字符串转int的问题

SSolidJJ 2013-09-17 07:37:04
网上很多人说这样可以转啊,但是我怎么一使用就异常,如下:
int iValue = Integer.parseInt("0x30", 16); //这样会产生异常
int iValue = Integer.parseInt("30", 16); //这样就对了,结果是48.
真搞不懂为啥。。。有朋友能讲讲么
...全文
9231 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
anthony570 2015-09-06
  • 打赏
  • 举报
回复
0x30本身就表示是16进制,那后面再有一个16就重复了。所以这个parseInt函数实现的时候,第一个参数就只允许数字字符
末日哥 2013-09-17
  • 打赏
  • 举报
回复
int iValue = Integer.parseInt("0x30".replace("0x",""), 16);
编程点滴 2013-09-17
  • 打赏
  • 举报
回复
引用 2 楼 endlessbest 的回复:
[quote=引用 1 楼 zhongxianyao 的回复:] 前面的0x去掉就可以了
我希望能够直接读取,因为文本中全是0x开头的。可以实现么?[/quote] 那就用截取字符串的方式吧
piaobo14 2013-09-17
  • 打赏
  • 举报
回复
截取一下不就可以了 int iValue = Integer.parseInt("0x30".subString(2,"0x30".length), 16);
SSolidJJ 2013-09-17
  • 打赏
  • 举报
回复
引用 1 楼 zhongxianyao 的回复:
前面的0x去掉就可以了
我希望能够直接读取,因为文本中全是0x开头的。可以实现么?
编程点滴 2013-09-17
  • 打赏
  • 举报
回复
前面的0x去掉就可以了

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧