Answer
Palindrome String Check in Java
Java
public class PalindromeString {
public static void main(String[] args) {
String s = "DAD";
// Method 1: Using for loop
int len = s.length(); // 3
String rev = "";
for (int i = len - 1; i >= 0; i--) {
rev = rev + s.charAt(i); // build reversed string
}
System.out.println("Reversed: " + rev);
if (s.equals(rev)) {
System.out.println("Palindrome string");
} else {
System.out.println("Not Palindrome string");
}
// Method 2: Using StringBuffer class (one-liner)
StringBuffer sf = new StringBuffer(s);
System.out.println("StringBuffer reversed: " + sf.reverse());
}
}
Output
CODE
Reversed: DAD
Palindrome string
StringBuffer reversed: DAD
Case-Insensitive Palindrome Check
Java
String s = "Madam";
String cleaned = s.toLowerCase().replaceAll("\\s+", ""); // "madam"
String rev = new StringBuffer(cleaned).reverse().toString();
System.out.println(s + " → " + (cleaned.equals(rev) ? "Palindrome" : "Not Palindrome"));
// Madam → Palindrome
Reusable Method
Java
public static boolean isPalindromeString(String s) {
String rev = new StringBuilder(s).reverse().toString();
return s.equalsIgnoreCase(rev);
}
String[] words = { "DAD", "MADAM", "RACECAR", "HELLO", "LEVEL", "JAVA" };
for (String w : words) {
System.out.println(w + " → " + (isPalindromeString(w) ? "Palindrome" : "Not Palindrome"));
}
Output
CODE
DAD → Palindrome
MADAM → Palindrome
RACECAR → Palindrome
HELLO → Not Palindrome
LEVEL → Palindrome
JAVA → Not Palindrome
Key Difference: String vs StringBuffer vs StringBuilder
| Class | Mutable | Thread-safe | reverse() |
|---|---|---|---|
String | No | Yes (immutable) | No |
StringBuffer | Yes | Yes (synchronized) | Yes |
StringBuilder | Yes | No | Yes (preferred) |
Use StringBuilder in single-threaded code (faster), StringBuffer in multi-threaded.
