Java Integer 转 String 的方式及原理

问:Java 中 Integer 转 String 的方式有哪些?其转换原理又是怎么样的呢?简单说说?

答:方式如下。

Integer sum = 1024;
//常见转换方式如下
String s1 = sum.toString();  //方式一
String s2 = Integer.toString(sum);  //方式二
String s3 = String.valueOf(sum);  //方式三

其中方式一与方式二的原理本质一致,具体源码解析如下:

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

public static String toString(int i) {
    if (i == Integer.MIN_VALUE)
        return "-2147483648";
    int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i);
    char[] buf = new char[size];
    getChars(i, size, buf);
    return new String(buf, true);
}

可以看到 toString() 和 toString(int i) 的本质一样,通过这两种方式可以把整数(包括0)转化为字符串,但是 Integer 如果是 null 的话就会报空指针异常(因为 toString(int) 会触发 Integer 的自动拆箱,调用其成员方法 intValue())。

方式三对应的源码如下:

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

public String toString() {
    return getClass().getName() + "@" + 
    Integer.toHexString(hashCode());
}

可以看到,当 Integer 是 null 的时候返回的 String 是字符串 "null" 而不是 null,也不会报空指针。

如上解释了 Integer 转 String 的几种方式,不过有一种情况还要留意,就是 String.valueOf(int i) 方法与 String.valueOf(Object i) 的区别,如下:

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

public static String valueOf(int i) {
    return Integer.toString(i);
}

本文参考自 Integer 转 String 的方式及原理相关题目解析

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,238评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,092评论 19 139
  • 7岁写书,9岁出书,别人家孩子的蒋方舟,在最新一期奇葩大会,演讲主题是“我如何战胜了讨好型人格!” 朋友问蒋方舟,...
    19楼先生阅读 5,713评论 0 0
  • 那一年 我四岁 你二十八岁 那一年 我未成年 你还年轻 如今 我已长大 你在变老 谢谢你 我二十二年...
    杂言碎语阅读 2,271评论 0 0
  • 肝脏是人体重要的器官,具有分泌胆汁、代谢功能、凝血功能、解毒功能、吞噬或免疫作用,所以肝脏健康很重要。目前由于生活...
    枫暖阅读 3,805评论 0 0

友情链接更多精彩内容