Java中Integer与String类型互转

Java中Integer与String类型互转前言在日常的 Java 编程中 会遇到需要将 int 类型转换成 String 类型的情况 这时候可以使用 Integer 类进行操作 在转换的时候 需要注意对象是否为 null 一 integer 转 String 类型存在三种方法 核心都是静态方法 toString 方法一 Integer 类的静态方法 toString Integera 3 Stringstr Integer toString a 方法二 Integer 类的成员方法 toString Integera 3 Stri

前言

在日常的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的判断,避免出现空指针异常报错。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210792.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午11:54
下一篇 2026年3月18日 下午11:54


相关推荐

  • Java的递归算法

    Java的递归算法

    2021年12月10日
    45
  • C++ stl_stl函数

    C++ stl_stl函数学校并未教授C++,当初接触的C++的STL,也是皮毛而已。结合对Java的集合框架等内容的认识,回顾这部分内容,收获很大。文章目录概述STL六大组件简介三大组件介绍1.容器2.算法3.迭代器常用容器1.string容器string容器基本概念string容器常用操作2.vector容器vector容器基本概念vector迭代器vector的数据结构vector常用API操作…

    2022年8月30日
    4
  • 正则表达式不包含某些字符_js匹配正则表达式的方法

    正则表达式不包含某些字符_js匹配正则表达式的方法问题:去除字符串中的标签,但不包括

    Nooneshouldbealoneintheiroldage.

    ‘.replace(/<((?!br).)*?>/g,”)//结果”Nooneshouldbealoneintheiroldage.

    2026年1月29日
    7
  • goland 激活码(注册激活)

    (goland 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlbnNlSWQiOi…

    2022年3月21日
    405
  • 基于无线传感器网络LEACH算法的改进

    基于无线传感器网络LEACH算法的改进LEACH 是 WSN 中第一个基于分簇的路由算法 它将网络中的节点分为簇头节点和簇内节点 由于簇头节点需要协调簇内节点的工作 负责数据的融合和转发 能量消耗相对较大 所以 LEACH 采用周期性地随机选择簇头节点以均衡网络中节点能量消耗 从而达到延长网络生命周期目的 LEACH 协议以 轮 作为运作周期 每一轮分成两个阶段 建立阶段和稳定传输阶段 为了节省频繁选择簇头带来的能量开销 数据的稳定阶段的持续时间要长于建立阶段的时间 在每轮的建立阶段 所有节点用 CSMA 的 MAC 协议广播 短消息 通信 自组织成簇 每

    2026年3月18日
    2
  • tomcat 设置允许跨域访问「建议收藏」

    tomcat 设置允许跨域访问「建议收藏」既然想到使用tomcat进行跨域的设置,而不使用在项目中设置header来解决,说明你也是tomcat下的资源需要做跨域处理吧?这也是一个统一的允许跨域设置,tomcat下的所有请求都将放开,请注意。具体步骤:1.首先找到你的tomcat所在路径,并在conf文件夹下找到web.xml2.打开该文件,在以下位置加上这段:<filter><…

    2026年4月19日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号