参考:https://blog.csdn.net/mottohlm/article/details/80767266
1.java中如何将string 转化成long
long l = Long.parseLong([String]);
或
long l = Long.parseLong([String],[int radix]);
long l = Long.valueOf("123").longValue();
2.Long.ValueOf(“String”)与Long.parseLong(“String”)的区别
Long.ValueOf(“String”)返回Long包装类型
Long.parseLong(“String”)返回long基本数据类型
3.Long.getLong() 与 Long.valueOf() 的区别
getLong(String str ) 与 valueOf(String str) 都是Long 这个类中的方法,它们的返回值都是Long ,传入的参数都是 String 。看这字面的意思好像都是将字符串变为Long 类型的数据。
public class TestStringToLong {
public static void main(String[] args) {
String lstr = "45" ;
Long l1 = Long.getLong(lstr);
Long l2 = Long.valueOf(lstr);
Long l3 = Long.parseLong(lstr);
System.out.println(l1);
System.out.println(l2);
System.out.println(l3);
}
}
返回结果:
null
45
45
getLong(String str )返回为什么是null呢,来看看源码:
public static Long getLong(String nm, Long val) {
String v = null;
try {
v = System.getProperty(nm);
} catch (IllegalArgumentException | NullPointerException e) {
}
if (v != null) {
try {
return Long.decode(v);
} catch (NumberFormatException e) {
}
}
return val;
}
v = System.getProperty(nm); //主要是这一句
它就是获取系统属性的
System.out.println(System.getProperty("os.name")); //Windows 10
System.out.println(System.getProperty("java.version"));//1.8.0_91
这就是系统属性。
getLong(String str )就是将系统属性的字符串转为Long 类型数据。
这就是之前Long l1 = Long.getLong(lstr); 为null的原因。坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑