</>

Technology

Java Programs

Difficulty

Beginner

Interview Question

Write a Java program to check if a string is a palindrome.

Answer

Palindrome Check in Java

Method 1: Using StringBuilder.reverse()

Java
public class PalindromeCheck {
    public static void main(String[] args) {
        String str = "madam";

        String reversed = new StringBuilder(str).reverse().toString();

        if (str.equals(reversed)) {
            System.out.println(str + " is a PALINDROME");
        } else {
            System.out.println(str + " is NOT a palindrome");
        }
    }
}

Output

CODE
madam is a PALINDROME

Method 2: Two-Pointer Approach (Efficient)

Java
public static boolean isPalindrome(String str) {
    int left = 0;
    int right = str.length() - 1;

    while (left < right) {
        if (str.charAt(left) != str.charAt(right)) {
            return false;  // mismatch found
        }
        left++;
        right--;
    }
    return true;  // all characters matched
}

System.out.println(isPalindrome("racecar"));  // true
System.out.println(isPalindrome("hello"));    // false
System.out.println(isPalindrome("A"));        // true (single char)

Case-Insensitive + Ignore Spaces

Java
public static boolean isPalindromeIgnoreCase(String str) {
    String cleaned = str.toLowerCase().replaceAll("\\s+", "");
    String reversed = new StringBuilder(cleaned).reverse().toString();
    return cleaned.equals(reversed);
}

System.out.println(isPalindromeIgnoreCase("Race Car"));  // true
System.out.println(isPalindromeIgnoreCase("Never Odd Or Even"));  // true

Test Multiple Words

Java
String[] words = { "madam", "racecar", "hello", "level", "java" };

for (String word : words) {
    boolean result = new StringBuilder(word).reverse().toString().equals(word);
    System.out.println(word + " → " + (result ? "Palindrome" : "Not palindrome"));
}

Output

CODE
madam   → Palindrome
racecar → Palindrome
hello   → Not palindrome
level   → Palindrome
java    → Not palindrome

Follow AutomateQA