假如给你一个题目,将一个整型数转换成它的字符串形式,你会怎么做,你会这样做,new Integer(432).toString(),或者Integer.toString(432),再或者Integer.toString(432,10)这几个方法都能办到,但是他们是怎么实现的呢,假如让你去实现你怎么做呢,我们通常的做法是:
public static String convertIntToString(int i){
int j = 0; //用来表示表示i中每一位上的数字
int size = 0; //用来表示i的位数
size = (i < 0) ? sizeOfInt(-i) + 1:sizeOfInt(i);
char[] buf = new char[size];
if(i < 0){
i = -i;
buf[0] = '-';
}
while(i != 0){
j = i % 10;
i = i / 10;
buf[--size] = Digit[j];
}
return new String(buf);
}
public static int sizeOfInt(int x){
int i = 0;
while(x != 0){
x /= 10;
i++;
}
return i;
}
public static char[] Digit = {
'0','1','2','3','4','5','6','7','8','9'
};
converIntToString()方法可以将任意的整形数转换成它的字符串形势,但是java库函数中是怎么实现的呢?在Integer类中的有个方法toString(int i)将整型转换成字符串表示,这个实现方法对渗透了对性能的考虑,对实际情况的考虑,让我们学习一下java源码。
/**
*将i转换成其字符串形式
*/
public static String toString(int i) {
如果i是int的最小值,直接返回一个常数,不用进行计算,
//不知道为什么没有对int的最大值进行优化,可能会在其他地方已经优化了,
if (i == Integer.MIN_VALUE)