// File: Palindrome.java
// This program determines whether an input line is a palindrome. The program
// ignores everything except alphabetic letters, and it ignores the difference
// between upper- and lowercase letters.
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
import java.util.Scanner; // From Appendix B
/******************************************************************************
* The Palindrome
Java application illustrates the use of a stack
* and a queue in the same program to determine whether a line is a
* palindrome. The program ignores everything except alphabetic letters, and it
* ignores the difference between upper- and lowercase letters.
*
*
Java Source Code for this class:
*
* http://www.cs.colorado.edu/~main/applications/Palindrome.java
*
*
* @author Michael Main
* (main@colorado.edu)
*
* @version Feb 10, 2016
******************************************************************************/
public class Palindrome
{
/**
* The main method prompts the user for a strings. Each string is read
* and checked to see whether it is a palindrome. The program ends when
* the user enters an empty line (just the return key).
* @param args
* not used in this implementation
**/
public static void main(String[ ] args)
{
Scanner stdin = new Scanner(System.in); // Keyboard input
String line; // One input line
do
{
System.out.print("Your expression (or return to end): ");
line = stdin.nextLine( );
if (is_palindrome(line))
System.out.println("That is a palindrome.");
else
System.out.println("That is not a palindrome.");
}
while (line.length( ) != 0);
}
/**
* Determine whether a string is a palindrom. Note: All non-letters are
* ignored, and the case of the letters is also ignored.
* @param input
* the string to check
* @return
* true if and only if the input string is a palindrome.
**/
public static boolean is_palindrome(String input)
{
Queue