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

  1. public class Palindrome {
  2. public static void main(String[] args) {
  3. int num = 121, reversedInteger = 0, remainder, originalInteger;
  4. originalInteger = num;
  5. // reversed integer is stored in variable
  6. while( num != 0 )
  7. {
  8. remainder = num % 10;
  9. reversedInteger = reversedInteger * 10 + remainder;
  10. num /= 10;
  11. }
  12. // palindrome if orignalInteger and reversedInteger are equal
  13. if (originalInteger == reversedInteger)
  14. System.out.println(originalInteger + " is a palindrome.");
  15. else
  16. System.out.println(originalInteger + " is not a palindrome.");
  17. }
  18. }

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:

Palindrome execution steps
numnum != 0remainderreversedInteger
121true10 * 10 + 1 = 1
12true21 * 10 + 2 = 12
1true112 * 10 + 1 = 121
0false121

Example 2: Program to Check Palindrome using for loop

  1. public class Palindrome {
  2. public static void main(String[] args) {
  3. int num = 11221, reversedInteger = 0, remainder, originalInteger;
  4. originalInteger = num;
  5. // reversed integer is stored in variable
  6. for( ;num != 0; num /= 10 )
  7. {
  8. remainder = num % 10;
  9. reversedInteger = reversedInteger * 10 + remainder;
  10. }
  11. // palindrome if orignalInteger and reversedInteger are equal
  12. if (originalInteger == reversedInteger)
  13. System.out.println(originalInteger + " is a palindrome.");
  14. else
  15. System.out.println(originalInteger + " is not a palindrome.");
  16. }
  17. }

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.