Write a program to read in a possible palindrome and then state whether or not it is a palindrome. There are several ways to do see if a string is a palindrome. First you will probably make all the letters one case and eliminate punctuation and any non-letter characters. Java has the Character.isLetter() method. Character.isLetter('a') returns true and Character.isLetter(',') returns false, as does ' ' '.' etc.
Way 1: Reverse the string. If the reversed string is the same (.equals()) as the original, pared down, string then it is a palindrome.
Way 2: Look at the first and last letter and see if they are the same (using the charAt() method), then the second letter and next to last letter, etc. If the letters are ever not the same, it is not a palindrome.
You may not use the StringBuffer
Write each of the following as separate boolean value returning methods of the form isPalindromeSingle(theStringToBeTested), isPalindromeInsensitive(theStringToBeTested), then use Line and Multiline . These will probably be used in an if statement, e.g. if (isPalindromeSingle(stringToBe Tested ) ) ...
Part 1: Read a single word in and tell whether or not it is a palindrome:
Sample runs:
Input a single word: deed
"deed" is a palindrome.
Input a single word: dead
"dead" is not a palindrome.
Part 2: Read a single word including upper and lower case characters, ignore the case and tell whether it is a palindrome:
Input a single word: Mom
"Mom" is a palindrome.
Input a single word: Mommy
"Mommy" is not a palindrome.
Part 3: Read a single line containing multiple words and non-character symbols and tell whether or not is is a palindrome. In this case you have to discard all non-letter characters. Fortunately there is a Java method that returns true if a letter is a letter and false if it is not. Character.isLetter('c') returns true and Character.isLetter(' ') is false, as would be ';' ',' '.', etc..
Input a single line of text: Anne, I vote more cars race Rome to Vienna.
" Anne, I vote more cars race Rome to Vienna." is a palindrome
// The original string has been changed to "anneivotemorecarsracerometovienna" and then tested.
Part 4: Multiline palindromes.
Enter a paragraph followed by pressing the Enter button twice:
Do good, I? No! Evil anon I deliver! I maim nine more Hero-Men in Saginaw;
sanitary sword a-tuck, Carol, I... lo! Rack! Cut a drowsy Rat in Aswan.
I gas nine more Hero-Men in Miami. Reviled, I (Nona), live on! I do, O God!!
// The above line is just a line feed, returning the empty String "".
The line that is just "" is the sentinel. You can stop reading when you have read that line.
You can stop loopping when the string is empty using the test myString.equals("").
The above paragraph is a palindrome. // I did not bother reprinting the paragraph. This message seems adequate.