Question

A palindrome is defined as a string of 1 or more characters that contains a word, a phrase or a number that reads the same forward and backward, ignoring case, punctuation and white space.

Your assignment is to write and test a Java program to read in multiple lines of input until an empty line is read.
After each line is read, determine if the line contains a palindrome and, if it does contain a palindrome, print which type of palindrome it is (word, phrase, or number).

Required main function: Here is the main method.   Copy this into your code and do not change it.

public static void main (String [] args) {

String line = getInputLine();
while (!isEmptyLine (line)) {
if (isPalindrome (line))
System.out.println (""" + line +
"" is a palindrome and a " + getPalType (line));
else
System.out.println (""" + line +
"" is not a palindrome");
line = getInputLine();

}
System.out.println ("End of program");
}

Required methods: You must write the following methods as specified to complete your program. Pay attention to the name, return type and parameters.

public static String getInputLine ( )
Prompt the user to input a line of input and then read and return the line.

public static boolean isEmptyLine(String str)
Return TRUE if the parameter is empty or FALSE otherwise.

public static boolean isPalindrome (String str)
Return TRUE if the string is a palindrome or FALSE otherwise. See the pseudo-code on the next page for the logic and the restrictions on this implementation.

public static String getPalType (String str)
Determine the type of the palindrome and return either “word”, “phrase”, “number”.
The definition is number is all digits, a word is all alphabetic, and a phrase is anything else.

isPalindrome pseudo-code

Note: in the following, the symbol ← represents assignment

left ← 0
right ← position of last character in string
okay ← true
while okay and left < right
ch1 ← character in the string at position (left)
if ch1 is not a digit or letter
increment left
else
ch2 ← character in the string at position (right)
if ch2 is not a digit or letter
decrement right
else
convert both ch1 and ch2 to upper case
if ch1 = ch2
increment left
decrement right
else
okay ← false
endif
endif
endif
end while
return okay

Here are the restrictions on this method. If you follow the logic above, then you will meet all the restrictions.

1. You may NOT return from the inside of a loop.
2. You may NOT break from the inside of a loop.
3. You should make the code as efficient as possible by stopping the processing as early as possible (when you find that it is or is not a palindrome).

Documentation: Use Javadoc style for all comments.
1. Document the beginning of the file with your name and program number as well as a description of the program.
2. Document each method.

Sample input and output

Enter a line of input: This is a test
“This is a test” is not a palindrome

Enter a line of input: 123454321
“123454321” is a palindrome and a number.

Enter a line of input: Otto!
“Otto!” is a palindrome and a word.

Enter a line of input: Able was I, ere I saw Elba.
“Able was I, ere I saw Elba.” is a palindrome and a phrase.

Enter a line of input:
Program complete

Solution Preview

This material may consist of step-by-step explanations on how to solve a problem or examples of proper writing, including the use of citations, references, bibliographies, and formatting. This material is made available for the sole purpose of studying and learning - misuse is strictly forbidden.

public static void main(String[] args) {
       String line = getInputLine();
       while (!isEmptyLine (line)) {
       if (isPalindrome (line))
       System.out.println ("\"" + line +
       "\" is a palindrome and a " + getPalType (line));
       else
       System.out.println ("\"" + line +
       "\" is not a palindrome");
       line = getInputLine();

       }
       System.out.println ("End of program");
    }...

This is only a preview of the solution. Please use the purchase button to see the entire solution

Assisting Tutor

Related Homework Solutions

Experimenting with ArrayList
Homework Solution
$30.00
Java
Programming
Computer Science
Subsequence
ArrayList
Loops
Elements
Conditions
Boolean
Functions
Methods
Java Problems With Stack
Homework Solution
$40.00
Java
Programming
Coding
Computer Science
Stack
Generic Types
Push
Pop
Peek
Size
Linked List
Functions
Strings
Integers
Summation
Negative Values
Input
Output
Multiplication Table in Java
Homework Solution
$40.00
Java
Programming
Codes
Algorithms
Computer Science
Statements
Variables
Loops
Rows
Columns
Input
Output
Integers
Strings
Multiplication
Tables
Operations
Conditions
Array Problems in Java: Summation, Average, Min/Max, Searching, Sorting
Homework Solution
$13.00
Java
Programming
Coding
Computer Science
Arrays
Summation
Average
Minimum Number
Maximum Number
Bubble Sort
Selection Sort
Sequential Search
Binary Search
Algorithms
Input
Output
Methods
Integers
Functions
Get help from a qualified tutor
Live Chats