Java中Integer与String类型互转_interage转化成string_jerrygaoling的博客-程序员宝宝

技术标签: Java学习  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的判断,避免出现空指针异常报错。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jerrygaoling/article/details/107368726

智能推荐

matlab 安装opencv 总结_matlab安装opencv_12..的博客-程序员宝宝

两个博客opencv matlab配置,MATLAB配置mexopencv_唐荣轩的博客-程序员宝宝平台:win10 x64+VS 2015+Matlab R2018b+opencv_python-3.4.1+mexopencv3.4.1问题来源:最近在做图像拼接的论文, 在opencv中有很多现成实现追踪的函数,想用那些函数来进行一个调试,由于MATLAB有更加强大的矩阵库,众多的工具箱,以及更加便捷的可视化及调试工具,所以打算在MATLAB中调用opencv库中的函数,在此记录一下配置的过程...

奥鹏教育9月统考计算机,【2015年9月统考】《计算机基础》网络统考 奥鹏统考电大统考 复习资料____电子表格..._gfyy2555的博客-程序员宝宝

《【2015年9月统考】《计算机基础》网络统考 奥鹏统考电大统考 复习资料____电子表格》由会员分享,可在线阅读,更多相关《【2015年9月统考】《计算机基础》网络统考 奥鹏统考电大统考 复习资料____电子表格(5页珍藏版)》请在人人文库网上搜索。1、单选题:1、在Excel2010中,假定一个公式中包含有单元格引用为$H38,则称该地址的行号为________。A.相对地址B.绝对地址C.混...

Redis | 地理空间(GEO)的一个坑_weixin_33811961的博客-程序员宝宝

2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt; ...

AndroidStudio|保存数据到本地_烫青菜的博客-程序员宝宝

AndroidStudio中简单数据的存储要用到SharedPreferences;Unity中使用PlayerPrefs.存储数据 getSharedPreferences()方法的第二个参数是个枚举,有以下四种操作模式:Context.MODE_PRIVATE (私有模式 ):值是0;只能被创建这个文件的当前应用访问;若文件不存在...

java实现 ioc_ioc配置与Java代码的互相转换_余雅琪的博客-程序员宝宝

背景无论是集成第三方jar,还是一些遗留系统,都可能涉及到如何把对象声明到ioc容器的问题.由于是第三方类,无法直接标注@IocBean等注解,所以需要ioc js之类的配置.然而, 如何把一段java代码,变成ioc配置,的确难住了很多人.变换的核心,就是如何灵活使用factory,配合type,args,fields,肯定能适配绝大部分的java代码.简单例子首先看一段Java代码NutDao...

QT报错:error: static assertion failed: No Q_OBJECT in the class with the signal_驱魔鮔_Roc的博客-程序员宝宝

今天利用QT写一个项目,在写代码的过程中,使用到了QT中一大特色【信号和槽】,对这个也是刚刚学习阶段,所以在这里遇到了一个问题:error: static assertion failed: No Q_OBJECT in the class with thesignal # define Q_STATIC_ASSERT_X(Condition, Message)static_assert(bool(Condition), Message)其实这个问题主要是说明没有使用Q_OBJECT主界面

随便推点

Linux-4.9.2内核在mini2440上的移植(十四)——蜂鸣器驱动移植_zl199203的博客-程序员宝宝

本篇目的:移植蜂鸣器驱动,并测试。本篇参考:http://singleboy.blog.163.com/blog/static/54900194201152921847149/14.1 蜂鸣器驱动源码添加(1)添加源码drivers/misc/mini24[email protected]:~/linux-4.9.2# vim drivers/misc/mini2440_pwm

Java 文档工具类(使用itext操作)_qq_41202277的博客-程序员宝宝

pom引入itext的时候如果提示资源下载失败,尝试改为阿里的镜像地址再次下载。 &lt;dependency&gt; &lt;groupId&gt;com.itextpdf&lt;/groupId&gt; &lt;artifactId&gt;itextpdf&lt;/artifactId&gt; &lt;version&gt;5.4.3&lt;/version&gt; &lt;/dependency&g

小程序开发 宽度100%_这是您作为开发人员可以实现100%年度目标的方式_cumi6497的博客-程序员宝宝

小程序开发 宽度100%by Prateek Phoenix 通过Prateek Phoenix 这是您作为开发人员可以实现100%年度目标的方式 (Here’s How You, as a Developer, Can Achieve 100% of Your Yearly Goals)A New Year always brings with it a couple of recurri...

海航集团王健应邀出席犹太普林节晚会_海航 犹太_suiyuejinghao1066的博客-程序员宝宝

2017年2月22日,犹太博物馆举办的第31届筹款活动--普林节晚会在纽约举行,海航集团王健应邀参会,并在会上代表集团领取了“全球企业荣誉”奖项。  这一奖项是用以表彰海航集团王健董事长卓越的商业领导能力及海航集团在全球公益事业上的突出贡献。在奉上无花果和迷迭香烤鸡之前,海航集团王健被请上前台,在700多位贵宾面前接受颁奖。  黑石集团合伙创建人和首席执行官史蒂夫·施瓦茨曼

fitbit手表中文说明书_使用机器学习预测Fitbit睡眠分数_weixin_26752765的博客-程序员宝宝

fitbit手表中文说明书In Part 1 of this article I explained how we can obtain sleep data from Fitbit, load it into Python and preprocess the data to be ready for further analysis. In this part I will explain h...

itext html 标签,IText 生成rtf 内容中含有HTML标签处理_weixin_39920403的博客-程序员宝宝

import java.io.FileOutputStream;import java.io.OutputStream;import java.io.StringReader;import java.util.List;import com.lowagie.text.Document;import com.lowagie.text.PageSize;import com.lowagie.text....