Java Program to Count Number of Digits in an Integer

To understand this example, you should have the knowledge of the following Java programming topics:


Example 1: Count Number of Digits in an Integer using while loop

public class Main {

  public static void main(String[] args) {

    int count = 0, num = 0003452;

    while (num != 0) {
      // num = num/10
      num /= 10;
      ++count;
    }

    System.out.println("Number of digits: " + count);
  }
}

Output

Number of digits: 4

In this program, while the loop is iterated until the test expression num != 0 is evaluated to 0 (false).

  • After the first iteration, num will be divided by 10 and its value will be 345. Then, the count is incremented to 1.
  • After the second iteration, the value of num will be 34 and the count is incremented to 2.
  • After the third iteration, the value of num will be 3 and the count is incremented to 3.
  • After the fourth iteration, the value of num will be 0 and the count is incremented to 4.
  • Then the test expression is evaluated to false and the loop terminates.

Note: The program ignores any zero's present before the number. Hence, for digits like 000333, the output will be 3.


Example 2: Count Number of Digits in an Integer using for loop

public class Main {

  public static void main(String[] args) {

    int count = 0, num = 123456;

    for (; num != 0; num /= 10, ++count) {
    }

    System.out.println("Number of digits: " + count);
  }
}

Output

Number of digits: 6

In this program, instead of using a while loop, we use a for loop without any body.

On each iteration, the value of num is divided by 10 and count is incremented by 1.

The for loop exits when num != 0 is false, i.e. num = 0.

Since, for loop doesn't have a body, you can change it to a single statement in Java as such:

for(; num != 0; num/=10, ++count);
Did you find this article helpful?