Integer中计算int位数的方法

今天在看JDK源码的时候,发现Integer求正数位数的方法,和自己写的方法差异比较大,而且效率很高,具体方法如下:

1     final static int [] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999,
2                                       99999999, 999999999, Integer.MAX_VALUE };
3 
4     // Requires positive x
5     static int stringSize(int x) {
6         for (int i=0; ; i++)
7             if (x <= sizeTable[i])
8                 return i+1;
9     }

简单来说,就是如果x小于等于9,那就是1位数,小于等于99,就是2位数,和自己之前写的用取模方法相比,这种方法的时间复杂度几乎是O(1)

原文地址:https://www.cnblogs.com/xyliao/p/6444066.html