Way to get number of digits in an int?

后端 未结 30 1276
梦毁少年i
梦毁少年i 2020-11-22 17:21

Is there a neater way for getting the number of digits in an int than this method?

int numDigits = String.valueOf(1000).length();
30条回答
  •  忘了有多久
    2020-11-22 17:46

    I wrote this function after looking Integer.java source code.

    private static int stringSize(int x) {
        final int[] sizeTable = {9, 99, 999, 9_999, 99_999, 999_999, 9_999_999,
                99_999_999, 999_999_999, Integer.MAX_VALUE};
        for (int i = 0; ; ++i) {
            if (x <= sizeTable[i]) {
                return i + 1;
            }
        }
    }
    

提交回复
热议问题