Java中Integer与String类型互转

前言

在日常的Java编程中,会遇到需要将int类型转换成String类型的情况,这时候可以使用Integer类进行操作。在转换的时候,需要注意对象是否为null

一、integer转String类型

存在三种方法,核心都是静态方法toString()

//方法一:Integer类的静态方法toString()
Integer a = 3;
String str = Integer.toString(a)
 
//方法二:Integer类的成员方法toString()
Integer a = 3;
String str = a.toString();
 
//方法三:String类的静态方法valueOf()
Integer a = 3;
String str = String.valueOf(a);

查看Integer 类中成员方法toString()可以发现其源码

public String toString(){
	return toString(value);
}

综上方法一、二是同一种方式,这两种方法在anull的时候会报空指针异常。
第三种方法其源码为:

public static String valueOf(Object obj) {
        return (obj == null) ? "null" : obj.toString();
    }

可见,第三种方式其核心也是调用了静态方法toString(),只是在其之前做了为==null的三目运算。
所以使用这种方式可以避免出现空指针异常的情况,但相对的会把null转化为String类型进行输出。此时无法使用==null来判断空值。

扩展

当需要转换成String类型,同时保留null属性时,可以自己写一个三目运算。

public static String valueOf(Object obj) {
        return (obj == null) ? null : obj.toString();
    }

二、String转Integer类型

可以使用Integer.valueOf()来进行操作。
值得注意的是根据其源码来看:

public static Integer valueOf(String s) throws NumberFormatException{
	return Integer valueOf(parseInt(s));

通过源码可以看到首先是通过parseInt(s)方法将String类型转化为int类型,然后使用Integer valueOf(int s)来进行转换。
其中Integer valueOf(int s)源码为:

public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}

-128~127之间的常量缓存下来,当超出范围时创建新对象,此处不扩张,可查阅int类型与对象integer类的区别。
所以此种方式当待转换参数为null时会报空指针异常,所以在转换前需要判断是否为null

总结

intintegerString的时候,调用静态方法toString()即可,但需要做好对象为null的判断,避免出现空指针异常报错。

  • 20
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值