android Integer类的toString函数的使用

作者: cnbzlj 发布时间: 2019-09-26 浏览: 1664 次 编辑

今天,简单讲讲android里如何使用Integer类的toString函数。

这个其实很简单,就是将整数转成字符串。不过之前一直使用的是String.value()来进行转换的。后来在为网上查找资料,发现Integer类的toString函数的效率更高,所以在这里记录一下。

一.下面介绍一下Integer类----toString函数的作用

toString方法---- 生成整数的十进制字符串 返回一个表示制定整数的String对象,将该参数转换为有符号的十进制表形式,以字符串形式返回它,就好像将参数和基数10作为参数赋予toString(int,int),方法。

方法声明1

Public static String toSring(int i);

入口参数:i为表示要转换成字符串的整数;

返回值:十进制(基数10)参数的字符串表示形式,

二.String.valueOf(int i)方法和Integer.toString(int i)方法的效率比较

1、String.valueOf(int i)

2、Integer.toString(int i)

3、i+""; //i 为 int类型

三种方法效率排序为:

Integer.toString(int i) > String.valueOf(int i) > i+""; 

代码测试:

public static void main(String[] args) { 
      int[] intArr = new int[1000000];
      String[] strArr1 = new String[1000000];//为了公平分别定义三个数组
 
      String[] strArr2 = new String[1000000];
      String[] strArr3 = new String[1000000];
      //赋值
      Long t1 = System.currentTimeMillis();
      for(int i=0;i<1000000;i++){
       intArr[i]=i+1;
      }
      Long t2 = System.currentTimeMillis();
      for(int i=0;i<1000000;i++){
        strArr1[i] = String.valueOf(intArr[i]);  
      }
      Long t3 = System.currentTimeMillis();
      for(int i=0;i<1000000;i++){
       strArr2[i] = Integer.toString(intArr[i]);
      }
      Long t4 = System.currentTimeMillis();
      for(int i=0;i<1000000;i++){
       strArr3[i] = intArr[i]+"";
      }
      Long t5 = System.currentTimeMillis();
      System.out.println("t1 = "+t1);
      System.out.println("t2 = "+t2);
      System.out.println("t3 = "+t3);
      System.out.println("t4 = "+t4);
      System.out.println("t5 = "+t5);
      System.out.println("赋值:"+(t2-t1));
      System.out.println("String.valueOf(i):"+(t3-t2));
      System.out.println("Integer.toString(i):"+(t4-t3));
      System.out.println("i+/"/":"+(t5-t4));
}

我的测试结果为:

t1 = 1298798872078
t2 = 1298798872093
t3 = 1298798872656
t4 = 1298798873000
t5 = 1298798873671

赋值:15

String.valueOf(i):563

Integer.toString(i):344

i+"":671

简单讲讲,大家可以会想知道为什么Integer.toString(int i)方法比String.valueOf(int i)方法效率高。可以看看android的源码:

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

我们可以看到,String.valueOf(int i)其实是调用了Integer.toString(int i)方法的。