0

How would I implement a method that would check whether the input is a palindrome sentence or not? (while ignoring case)

Here's my code so far and it checks if a singular word is a palindrome

import java.util.Stack;

public class PaliCh {

    private String inputString;
    private Stack<Character> characterStack = new Stack<Character>();

    public PaliCh() 
    {
        this.inputString = inputString;
        this.addStack();
    }

    private void addStack() 
    {
        for (int i = 0; i < this.inputString.length(); i++) 
        {
            this.characterStack.push(this.inputString.charAt(i));
        }

    }

    private String reverseStack() 
    {
        StringBuilder reverseInputString = new StringBuilder();
        while (!this.characterStack.isEmpty()) 
        {
            reverseInputString.append(this.characterStack.pop());
        }
        return reverseInputString.toString();
    }

    public boolean isPalindrome() 
    {
        return this.inputString.equals(this.reverseStack());
    }

} 
Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197

2 Answers2

0

In StringBuilder you already have the .reverse() method

StringBuilder stringBuilder = new StringBuilder("abba");

if(stringBuilder.toString().equals(stringBuilder.reverse().toString())) {
    System.out.println("Palindrom");
}
Schidu Luca
  • 3,897
  • 1
  • 12
  • 27
0

or simply:

public static boolean isPalindrome(String s) {
   int i = 0;
   int j = s.length()-1;
   while (i < j) {
       if (s.charAt(i) != s.charAt(j)) {
           return false;
       }
       ++i;
       --j;
   }
   return true;
}

Or even:

public static boolean isPalindrome(String s) {
   for (int i = 0,j = s.length()-1; i < j; ++i, --j) {
       if (s.charAt(i) != s.charAt(j)) {
           return false;
       }
   }
   return true;
}
Maurice Perry
  • 9,261
  • 2
  • 12
  • 24