为了账号安全,请及时绑定邮箱和手机立即绑定

请问Long.decode(String nm)和Long.valueOf(String s)的区别

请问Long.decode(String nm)和Long.valueOf(String s)的区别

MYYA 2022-03-03 07:07:48
希望讲的深入一些,有直观的例子最好jdk的文档上字眼的差别就不要拿出来了,谢谢
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

Long.decode可以解析以0x,0X,#,0开头的字符串,分别表示这个字符串是16或8进制的数字字符串。而valueOf只能解析纯数字的10进制字符串。

System.out.println(Long.decode("011")); // 8进制,输出9.
System.out.println(Long.decode("#11")); // 16进制,输出17.
System.out.println(Long.decode("0X11"));// 16进制,输出17.
System.out.println(Long.decode("0x11"));// 16进制,输出17.
System.out.println(Long.decode("11")); // 10进制,输出11.

System.out.println(Long.valueOf("011")); // 输出11.
System.out.println(Long.valueOf("#11")); // 出错.
System.out.println(Long.valueOf("0X11"));// 出错.
System.out.println(Long.valueOf("0x11"));// 出错.
System.out.println(Long.valueOf("11")); // 输出11.



查看完整回答
反对 回复 2022-03-07
?
catspeake

TA贡献1111条经验 获得超0个赞

Long.valueof(String s):返回的是“固定的十进制”的一个Long的对象。
Long.decode(String nm):则会根据参数的前导数字转变为相应的进制。

比如nm=0x1234,valueof()方法报错,decode()方法则会转化为16进制的Long类型。
再不如nm=0222,valueof()返回222,decode()方法则会转化为8进制的Long类型 146。

不知道这样说您明白没有。

查看完整回答
反对 回复 2022-03-07
  • 2 回答
  • 0 关注
  • 248 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信