java中将string 转化成long(Long.getLong()的坑)

参考: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的原因。坑坑坑坑坑坑坑坑坑坑坑坑坑坑坑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值