Java中int转String 和 String转int 各方法效率对比

Java中int转String 和 String转int 各方法效率对比一 int 转 String 有三种方式 1 num 2 String valueOf num 3 Integer toString num int Stringintnum 1 num longstart System currentTimeM 得到开始运行时系统时间 for inti

一、int转String有三种方式

(1)num + “”

(2)String.valueOf(num)

(3)Integer.toString(num)

//int => String int num = ; //(1)num + "" long start = System.currentTimeMillis();//得到开始运行时系统时间 for(int i=0; i<; i++){ String str = num + ""; } long end = System.currentTimeMillis();//得到结束运行时系统时间 System.out.println("num + \"\" : " + (end - start)); //(2)String.valueOf(num) start = System.currentTimeMillis(); for(int i=0; i<; i++){ String str = String.valueOf(num); } end = System.currentTimeMillis(); System.out.println("String.valueOf(num) : " + (end - start)); //(3)Integer.toString(num) start = System.currentTimeMillis(); for(int i=0; i<; i++){ String str = Integer.toString(num); } end = System.currentTimeMillis(); System.out.println("Integer.toString(num) : " + (end - start));

运行结果:

num + "" : 45 String.valueOf(num) : 8 Integer.toString(num) : 9

可以发现,第一种方式与后面两种方式运行的时间相差比较大。关于这一点的解释,可以参考博客写的比较详细,这里只说一下区别:

String.valueOf():采用String.valueOf(object)的基础是Object#toString(),但这里不用担心object是否为null这一问题,JDK中String#valueOf(object)源码:

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

所以使用该方
法不必担心object为null的情况,但同时注意当object为null时该方法返回"null",而非null!!!

Integer.toString():采用Integer.toString()的基础仍是Object#toString(),因为java.lang.Object类中已有public方法toString(),所以对任何严格意义上的Java对象都可以调用此方法,但使用时需要注意,必须保证object不是null值,否则将会抛出NullPointerException异常!!!

二、String转int有两种方式

(1)Integer.parseInt(str)

(2)Integer.valueOf(str).intValue()

//String => int String s = ""; //(1)Integer.parseInt(str) start = System.currentTimeMillis(); for(int i=0; i<; i++){ int n = Integer.parseInt(s); } end = System.currentTimeMillis(); System.out.println("Integer.parseInt(str) : " + (end - start)); //(2)Integer.valueOf(str).intValue() start = System.currentTimeMillis(); for(int i=0; i<; i++){ int n = Integer.valueOf(s).intValue(); } end = System.currentTimeMillis(); System.out.println("Integer.valueOf(str).intValue() : " + (end - start));

运行结果:

Integer.parseInt(str) : 13 Integer.valueOf(str).intValue() : 10

可以发现,两者运行时间基本差不多。但是第二种方法,先是将String => Integer => int,即将String包装类型转化为Integer包装类型,再将包装类型转化为基本类型。

【包装类型转化为基本类型,调用包装类对象的intValue()、shortValue()、doubleValue()等方法】





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

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

(0)
上一篇 2026年3月26日 下午11:05
下一篇 2026年3月26日 下午11:05


相关推荐

  • mac idea2021永久激活码【中文破解版】

    (mac idea2021永久激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月25日
    164
  • 关于&0x80

    关于&0x80一些关于 windows 相关的书 书中提到扫描码的概念 扫描码的最低 7 为 0 6 位 是描述码值 而最高位 7 位 就描述该键是否被按下了 所以要想知道该键是否被按下就必须与 0x80 相与 例如 GetKeyState VK UP amp 0x80 或 KeyStateBuff DIK ESCAPE amp 0x80 同时 在 ANSIC 标准中

    2026年3月17日
    2
  • verbosity理解

    verbosity理解verbosity 是一个选项 表示结果的信息复杂度 一般在输出中很常用如在 tf keras model fit 中 verbose 有三种取值 0 1 or2 Verbositymod 0 silent 1 progressbar 2 onelineperep Notethatthep soverbose 2isrecomme

    2026年3月20日
    2
  • 大型网站技术架构演进_网站信息架构

    大型网站技术架构演进_网站信息架构出处:http://blog.csdn.net/anxpp/article/details/51614973大型网站架构演化过程1、初始阶段的网站架构网站一开始,使用的人并不多,访问量比较小,使用一台服务器就已经完全满足要求的。我们的个人主页、博客,都可以使用如下架构:01应用程序、数据库和文件等资源,都在同一台服务器上。通常也使用一些开源免费的软件来将成本最低化。2.2、应用服务于数

    2025年6月1日
    4
  • mysql 字符串索引 起始_mysql截取字符串「建议收藏」

    mysql 字符串索引 起始_mysql截取字符串「建议收藏」mysql截取字符串mysql索引从1开始一、mysql截取字符串函数1、left(str,index)从左边第index开始截取2、right(str,index)从右边第index开始截取3、substring(str,index)当index>0从左边开始截取直到结束当index<0从右边开始截取直到结束当index=0返回空4、substring(str,index,…

    2022年6月12日
    96
  • bytebuf池_Netty ByteBuf[通俗易懂]

    bytebuf池_Netty ByteBuf[通俗易懂]ByteBufByteBuf需要提供JDKByteBuffer的功能(包含且不限于),主要有以下几类基本功能:7种Java基础类型、byte[]、ByteBuffer(ByteBuf)的等的读写缓冲区自身的copy和slice设置网络字节序构造缓冲区实例操作位置指针扩容原理首先确认ByteBuf是否已经被释放,如果被释放,则抛出IllegalReferenceCountException异常判断…

    2026年1月27日
    5

发表回复

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

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