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.
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。
不知道这样说您明白没有。
添加回答
举报