Palindrome Number in Java
Last updated: February 8, 2025
Palindrome numbers are commonly asked in Java interviews, coding rounds, and beginner programming assignments. They are simple yet help strengthen your understanding of number manipulation and logic building. In this guide, we will understand what palindrome numbers are and explore multiple Java programs to check them.
What is a Palindrome Number?
A palindrome number is a number that remains the same when its digits are reversed.
Examples of palindrome numbers:
121, 131, 1441, 1221, 9999
Non-palindrome numbers include:
123, 145, 120, 5678
Java Program: Check Palindrome Using Loop
This is the most basic and easiest approach using simple arithmetic.
import java.util.Scanner;
public class PalindromeCheck {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a number: ");
int n = sc.nextInt();
int original = n;
int reversed = 0;
while (n > 0) {
int digit = n % 10;
reversed = reversed * 10 + digit;
n = n / 10;
}
if (original == reversed)
System.out.println(original + " is a Palindrome Number.");
else
System.out.println(original + " is NOT a Palindrome Number.");
}
}
Check Palindrome Using String Conversion
This method is very simple and uses string reversal logic.
public class PalindromeString {
public static void main(String[] args) {
int n = 1221;
String s = Integer.toString(n);
String reversed = new StringBuilder(s).reverse().toString();
if (s.equals(reversed))
System.out.println(n + " is a Palindrome Number.");
else
System.out.println(n + " is Not a Palindrome Number.");
}
}
Optimized Palindrome Check
This optimized version avoids reversing the full number and stops early for efficiency.
public class PalindromeOptimized {
public static boolean isPalindrome(int n) {
if (n < 0 || (n % 10 == 0 && n != 0)) return false;
int reversedHalf = 0;
while (n > reversedHalf) {
reversedHalf = reversedHalf * 10 + n % 10;
n = n / 10;
}
return (n == reversedHalf) || (n == reversedHalf / 10);
}
public static void main(String[] args) {
int n = 12321;
if (isPalindrome(n))
System.out.println(n + " is Palindrome.");
else
System.out.println(n + " is Not Palindrome.");
}
}
Palindrome Number Using Recursion
Recursion provides an elegant solution for conceptual understanding.
public class PalindromeRecursion {
public static int reverse(int n, int rev) {
if (n == 0)
return rev;
return reverse(n / 10, rev * 10 + n % 10);
}
public static void main(String[] args) {
int n = 4554;
int reversed = reverse(n, 0);
if (n == reversed)
System.out.println(n + " is Palindrome.");
else
System.out.println(n + " is Not Palindrome.");
}
}
Palindrome Numbers in a Range
This program prints all palindromes between two numbers.
public class PalindromeRange {
public static boolean isPalindrome(int n) {
int original = n, reversed = 0;
while (n > 0) {
int digit = n % 10;
reversed = reversed * 10 + digit;
n /= 10;
}
return original == reversed;
}
public static void main(String[] args) {
System.out.println("Palindrome numbers between 1 and 500:");
for (int i = 1; i <= 500; i++) {
if (isPalindrome(i))
System.out.print(i + " ");
}
}
}
Conclusion
Palindrome numbers are a great way to build your foundational programming skills in Java. You can try different variations such as palindromes in strings, sentences, or ranges to deepen your understanding. The loop method is ideal for beginners, while optimized methods are suitable for performance-heavy situations.