# Java Program - Count digits in an Integer

In Java, count of digits in a given integer can be found out by using below mentioned methods.

### Method 1: Using iteration

The method involves the following steps:

```Input: MyNum
Step 1: Initialize the count = 0
Step 2: Iterate over MyNum while it is not zero.
Step 2a: Update MyNum by MuNum / 10
Step 2b: Increase count by 1
Step 3: Return count
```

### Example:

```Input: 564
count: 0

Iteration 1:
MyNum: 564 / 10 = 56
count: 0 + 1 = 1

Iteration 2:
MyNum: 56 / 10 = 5
count: 1 + 1 = 2

Iteration 3:
MyNum: 5 / 10 = 0
count: 2 + 1 = 3

return count = 3
```

The below block of code shows the implementation of above concept:

```public class MyClass {
//method to count number of digits
static int countDigits(long MyNum) {
int count = 0;

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

public static void main(String[] args) {
long x = 123;
long y = 459709;
System.out.println(x + " contains: " + countDigits(x) + " digits");
System.out.println(y + " contains: " + countDigits(y) + " digits");
}
}
```

The above code will give the following output:

```123 contains: 3 digits
459709 contains: 6 digits
```

### Method 2: Using Recursion

The above result can also be achieved using recursive method. Consider the example below:

```public class MyClass {
//method to count number of digits
static int countDigits(long MyNum) {
if(MyNum != 0)
return 1 + countDigits(MyNum/10);
else
return 0;
}

public static void main(String[] args) {
long x = 564;
long y = 980620;
System.out.println(x + " contains: " + countDigits(x) + " digits");
System.out.println(y + " contains: " + countDigits(y) + " digits");
}
}
```

The above code will give the following output:

```564 contains: 3 digits
980620 contains: 6 digits
```

### Method 3: Using log method

The log (base-10) of absolute value of a given number can be used to find out the number of digits in a given number. Consider the example below:

```public class MyClass {
//method to count number of digits
static int countDigits(long MyNum) {
return  (int)Math.log10(Math.abs(MyNum)) + 1;
}

public static void main(String[] args) {
long x = 564;
long y = -12345;
long z = 980620;
System.out.println(x + " contains: " + countDigits(x) + " digits");
System.out.println(y + " contains: " + countDigits(y) + " digits");
System.out.println(z + " contains: " + countDigits(z) + " digits");
}
}
```

The above code will give the following output:

```564 contains: 3 digits
-12345 contains: 5 digits
980620 contains: 6 digits
```

### Method 4: Using length of string

This can also be achieved by converting the absolute value of number into a string and then finding out the length of the string to get the number of digits in the original number. Consider the example below:

```public class MyClass {
//method to count number of digits
static int countDigits(long MyNum) {
String MyStr = Long.toString(MyNum);
return  MyStr.length();
}

public static void main(String[] args) {
long x = 564;
long y = -12345;
long z = 980620;
System.out.println(x + " contains: " + countDigits(x) + " digits");
System.out.println(y + " contains: " + countDigits(y) + " digits");
System.out.println(z + " contains: " + countDigits(z) + " digits");
}
}
```

The above code will give the following output:

```564 contains: 3 digits
-12345 contains: 5 digits
980620 contains: 6 digits
```

5