java中int转string,string转int效率对比

string转int,两种方法:

1、Interger.parseInt(String)

2、Interger.valueOf(String).intValue()

第二种方法可以去看源码,实现了第一种方法。


注释大概就是这样的意思

/**
      *返回一个包含整数的对象
      *指定的{@ String String}的值。 这个说法是
      *被解释为表示一个有符号的十进制整数
      *就好像这个论据是给予{@link的
      * #parseInt(java.lang.String)}方法。 结果是一个
      表示整数值的整数对象
      *由字符串指定。
     *
      换句话说,这个方法返回一个{@code Integer}
      *对象等于以下值:
     *
      * <blockquote>
      * {@code new Integer(Integer.parseInt(s))}
      * </ blockquote>
     *
      * @param是要解析的字符串。
      * @返回一个保存值的{整数}对象
      *由字符串参数表示。
      * @exception NumberFormatException如果字符串不能被解析
      *作为一个整数。
     */

在valueOf()里面实现了parseInt()方法。时间对比第二种比第一种要快了很多。

 Integer.parseInt(str) : 21
 Integer.valueOf(str).intValue() : 14

--------------------------------------------------------------------------------

int 转string一般用三种方法:

第一种:number + ""

第二种:string.valueOf()

第三种:.toString()

先说第一种,简单粗暴。

第二种方法:底层使用的依旧是.toString()方法

第三种就是toString()

上代码。

int num = 888888;

        //(1)num + ""
        long start = System.currentTimeMillis();//得到开始运行时系统时间
        for(int i=0; i<100000; 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<100000; 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<100000; i++){
            String str = Integer.toString(num);
        }
        end = System.currentTimeMillis();
        System.out.println("Integer.toString(num) : " + (end - start));
结果就是

num + "" : 82
String.valueOf(num) : 32
Integer.toString(num) : 9

经过多次的反复测试,toString()是最快的,num+""是最慢的,在使用String.valueOf()中源码是这样的。

public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}
也就是说在使用的时候,不用去判断所传的对象是否为null,但是尤其注意,如果传的为空,返回来的是一个为null的字符串而不是null值,这个地方需要谨记。

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值