import java.util.*; public class PalDemo { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); String line; do { System.out.print("Your expression (or return to end): "); line = stdin.nextLine(); if (line.length() == 0) break; if (isPalindrome(line)) System.out.println("That is a palindrome"); else System.out.println("That is not a palindrome."); } while (true); } public static boolean isPalindrome(String input) { Queue q = new LinkedList(); Stack s = new Stack(); Character c; int mismatches = 0; int i; for (i = 0; i < input.length(); i++) { c = input.charAt(i); if (Character.isLetter(c)) { q.add(c); s.push(c); } } while (!q.isEmpty()) { if (q.remove() != s.pop()) mismatches++; } return (mismatches == 0); } }