java 十六进制到 int 的转换 - 必须删除 0X 吗?
Posted
技术标签:
【中文标题】java 十六进制到 int 的转换 - 必须删除 0X 吗?【英文标题】:java hexadecimal to int conversion - have to remove 0X ? 【发布时间】:2013-10-03 03:51:44 【问题描述】:我有一个包含许多十六进制数字的文件(例如 - 0X3B4 )。我试图解析这个文件,将这些数字分配给整数,但似乎没有让 Integer.parseInt 工作。
int testint = Integer.parseInt("3B4",16); <- WORKS
int testint = Integer.parseInt("0X3B4",16);
给出错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: "0x3b4"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
将值 0XB4 分配给 int 的正确方法是什么?
我是否有摆脱 0X - 以这种方式表示十六进制编号并不罕见......
【问题讨论】:
【参考方案1】:你可以的
int hex = Integer.decode("0x3b4");
你说得对,parseInt 和 parseLong 不会接受 0x 或 0X
【讨论】:
谢谢。这在 java 1.4.1 中也不起作用,不过我可以在更高版本中使用它。 @Nik 我怀疑 1.4.1 现在已经十岁了。 ;)以上是关于java 十六进制到 int 的转换 - 必须删除 0X 吗?的主要内容,如果未能解决你的问题,请参考以下文章
java如何将十六进制0xFF5100A5转换为无符号int值,貌似java不支持无符号数据?