首页 > 技术文章 > Java源码中的发现:快速判断一个int值是几位数

cRaZy-TyKeIo 2014-02-22 18:54 原文

判断一个int值是几位数,要是我自己实现,估计又会想到除法和模运算了,偶然在java标准API源码中发现的写法,很强大。

public class Test {
    final static int[] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999,
            99999999, 999999999, Integer.MAX_VALUE };
    static int sizeOfInt(int x) {
        for (int i = 0;; i++)
            if (x <= sizeTable[i])
                return i + 1;
    }
    public static void main(String[] args) {
        System.out.println(sizeOfInt(1234));
        System.out.println(sizeOfInt(123));
        System.out.println(sizeOfInt(12345));
        System.out.println(sizeOfInt(12));
    }
}

推荐阅读