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
