Last active
February 11, 2017 08:13
-
-
Save twhite96/288ed40c2d7bb9d1482a7ece3f1be164 to your computer and use it in GitHub Desktop.
Palindrome algorithm in Java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Lab2.java Starter File | |
import java.io.*; // BufferedReader | |
import java.util.*; // Scanner | |
public class Lab2 | |
{ | |
public static void main (String args[]) throws Exception // i.e. the input file you put on cmd line is not in directory | |
{ | |
// ALWAYS TEST FIRST TO VERIFY USER PUT REQUIRED INPUT FILE NAME ON THE COMMAND LINE | |
if (args.length < 1 ) | |
{ | |
System.out.println("\nusage: C:\\> java Lab2 <input filename>\n\n"); // i.e. C:\> java Lab2 input.txt | |
System.exit(0); | |
} | |
BufferedReader infile = new BufferedReader (new FileReader( args[0] )); // we read our text file line by line | |
int lineNum=0; | |
while( infile.ready() ) | |
{ | |
String line = toAlphaLowerCase(infile.readLine()); | |
if ( isPalindrome( line ) ) | |
System.out.format("<%s> IS palindrome.\n",line); | |
else | |
System.out.format("<%s> NOT palindrome.\n",line); | |
} | |
} // END MAIN | |
// ******* MODIFY NOTHING ABOVE THIS LINE YOU FILL IN THE METHODS BELOW ******* | |
// RETURNS A STRING WITH ALL NON ALPHABETIC CHARS REMOVED. ALL REMAINING ARE ALPHAS CONVERTED TO LOWER CASE | |
// "Madam I'm Adam" returns "madamimadam" which is now ready for a simple palindromic test | |
// To test whether a char is alpha i.e. letter of the alphabet | |
// read this ==> https://docs.oracle.com/javase/tutorial/i18n/text/charintro.html | |
static String toAlphaLowerCase( String s ) | |
{ | |
String clean = ""; | |
for (int i = 0; i < s.length(); i++) { | |
if (Character.isLetter(s.charAt(i)) == true) | |
clean += Character.toLowerCase(s.charAt(i)); | |
} | |
return clean; // (just to make it compile) YOU CHANGE AS NEEDED | |
} | |
// RETURNs true if and only if the string passed in is a palindrome | |
static boolean isPalindrome( String s ) | |
{ | |
if (s.equals("") || s == null) { | |
return true; | |
} | |
for (int i = 0; i < s.length() / 2; i++) { | |
if (s.charAt(s.length() - 1 - i) != s.charAt(i)) { | |
return false; | |
} | |
} | |
return true; // (just to make it compile) YOU CHANGE AS NEEDED | |
} | |
} // END LAB2 CLASS |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment