Java Program to Check Whether a Number is Palindrome or Not
In this program, you’ll learn to check whether a number is a palindrome or not in Java. This is done by using for and while loop.
Example 1: Program to Check Palindrome using while loop
public class Palindrome {public static void main(String[] args) {int num = 121, reversedInteger = 0, remainder, originalInteger;originalInteger = num;// reversed integer is stored in variablewhile( num != 0 ){remainder = num % 10;reversedInteger = reversedInteger * 10 + remainder;num /= 10;}// palindrome if orignalInteger and reversedInteger are equalif (originalInteger == reversedInteger)System.out.println(originalInteger + " is a palindrome.");elseSystem.out.println(originalInteger + " is not a palindrome.");}}
When you run the program, the output will be:
121 is a palindrome number.
In this program,
- First, given number (num)’s value is stored in another integer variable, originalInteger. This is because, we need to compare the values of reversed number and original number at the end.
- Then, a while loop is used to loop through num until it is equal to 0.
- On each iteration, the last digit of num is stored in remainder.
- Then, remainder is added to reversedInteger such that it is added to the next place value (multiplication by 10).
- Then, the last digit is removed from num after division by 10.
- Finally, reversedInteger and originalInteger are compared. If equal, it is a palindrome number. If not, it isn’t.
Here are the execution steps that takes place:
| num | num != 0 | remainder | reversedInteger |
|---|---|---|---|
| 121 | true | 1 | 0 * 10 + 1 = 1 |
| 12 | true | 2 | 1 * 10 + 2 = 12 |
| 1 | true | 1 | 12 * 10 + 1 = 121 |
| 0 | false | – | 121 |
Example 2: Program to Check Palindrome using for loop
public class Palindrome {public static void main(String[] args) {int num = 11221, reversedInteger = 0, remainder, originalInteger;originalInteger = num;// reversed integer is stored in variablefor( ;num != 0; num /= 10 ){remainder = num % 10;reversedInteger = reversedInteger * 10 + remainder;}// palindrome if orignalInteger and reversedInteger are equalif (originalInteger == reversedInteger)System.out.println(originalInteger + " is a palindrome.");elseSystem.out.println(originalInteger + " is not a palindrome.");}}
When you run the program, the output will be:
11221 is not a palindrome.
In the above program, for loop is used instead of a while loop.
On each iteration, num /= 10 is executed and condition num !=0 is checked.