</>

Technology

Java Programs

Difficulty

Beginner

Interview Question

Write a Java program to check if a string is a palindrome using a for loop and StringBuffer.

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

ClassMutableThread-safereverse()
StringNoYes (immutable)No
StringBufferYesYes (synchronized)Yes
StringBuilderYesNoYes (preferred)

Use StringBuilder in single-threaded code (faster), StringBuffer in multi-threaded.

Follow AutomateQA