Java Program to Count Number of Digits in a Number

  • Java program to find the count of digits in a number using loop and logarithm.

In this java program, we have to find the number of digits in given integer.
For Example:
Count of digits in 1435238 is 7

Java program to find the count of digits in an integer

In this program, we count the number of digits in N by removing one digit from N at a time in every iteration and increment count until N becomes zero.

Algorithm to count digits of a number
Let N be the given number and "count" be an integer variable for storing number of digits in N.
  • Initialize count to 0.
  • Remove the least significant digit from N. (N = N /10;)
  • Increment count.
  • Repeat above two steps, till N is not equal to zero.
package com.tcc.java.programs;

import java.util.Scanner;

/**
 * Java Program to count digits in a number
 */
public class CountDigits {
    public static void main(String[] args) {
        int number, count = 0, temp;
        Scanner scanner;
        scanner = new Scanner(System.in);

        System.out.println("Enter an Integer");
        number = scanner.nextInt();

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

        System.out.format("Number of Digits in %d = %d", number, count);
    }
}
Output
Enter an Integer
63542
Number of Digits in 63542 = 5
Enter an Integer
1
Number of Digits in 1 = 1

Java program for counting digits of a number using logarithm

We first take a number N as input from user and check if it is a negative number. If true, then we multiply it by -1 to make it positive. Here we are using log10(logarithm of base 10) to count the number of digits of N (logarithm is not defined for negative numbers).
Digit count of N = log10(N) + 1

package com.tcc.java.programs;

import java.util.Scanner;

/**
 * Java Program to count digits in a number using logarithm
 */
public class CountDigitsLog {
    public static void main(String[] args) {
        int number, count = 0, temp;
        Scanner scanner;
        scanner = new Scanner(System.in);

        System.out.println("Enter an Integer");
        number = scanner.nextInt();

        temp = number;

        /* If input number is negative then make it positive */
        if (temp < 0)
            temp = temp * -1;

        if (temp != 0) {
            /* If input number is non-zero */
            count = (int) Math.log10(temp) + 1;
        } else {
            count = 1;
        }

        System.out.format("Number of Digits in %d = %d", number, count);
    }
}
Output
Enter an Integer
1234
Number of Digits in 1234 = 4
Enter an Integer
1
Number of Digits in 1 = 1