50,528
社区成员
发帖
与我相关
我的任务
分享
int a=0x0000A;
这句就是把a的值赋成了10,
根据楼主的代码,把String b=Integer.toString(a);
这句改成String b=Integer.toHexString(a);
那么c的值将是"a",当然int d =Integer.parseInt(c);
这句会抛出java.lang.NumberFormatException,因为"a"并不是一个数字。[/quote]
恩恩,完全懂了。谢谢int a=0x0000A;
这句就是把a的值赋成了10,
根据楼主的代码,把String b=Integer.toString(a);
这句改成String b=Integer.toHexString(a);
那么c的值将是"a",当然int d =Integer.parseInt(c);
这句会抛出java.lang.NumberFormatException,因为"a"并不是一个数字。int a=0x0001;
和int a=1;
是等效的,
int a=0x000A;
和int a=16;
是等效的,只是整数的十六进制和十进制的不同写法而已,所以b.substring(0,1)后截取的是"16"的第一位,也就是"1",并不会报错。(ps: java标准库中String有substring方法,没有subString方法,注意大小写)
如果想使用十六进制写法的字符串,需要调用Integer.toHexString(int i)方法