Palindrome Checker using StringBuilder

user1993177 picture user1993177 · Mar 6, 2013 · Viewed 7.8k times · Source

Im trying to create a palindrome checker. I am using a StringBuilder and I've discovered that appending spaces are kind of tricky.

EDIT: are there other ways besides using .reverse()? Thanks for the answers. :D

This code works when the word has no spaces:

public String palindrome (String anyString) {

StringBuilder sb = new StringBuilder();

for (int i = anyString.length()-1; i>=0; i--) {
        sb.append(anyString.charAt(i));
}

String string2 = sb.toString();

return string2;
}

When the word entered has a space; it returns a string that includes characters up to the first space.

E.g.:

word = "not a palindrome"
palindrome(word) = "emordnilap"

expected = "emordnilap a ton"


I have tried inserting

if (anyString.charAt(i) != ' ')
    sb.append(anyString.charAt(i));
else 
    sb.append(' ');

at the middle of the code but it doesn't work.

Thanks guys!

Answer

bsiamionau picture bsiamionau · Mar 6, 2013

Use StringBuilder.reverse() method instead, it works faster (1378 line) and more correct

StringBuilder sb = new StringBuilder("not a palindrome");
System.out.println(sb.reverse());

Output:

emordnilap a ton