// Student name: Will Song // School name: Ray Chinese School // Contest division: Intermediate 3 package nysiis; import java.io.*; public class Main { public static void main(String[] args) { String name = "NAME"; String firstpart = "NAME"; String lastpart = "NAME"; String finalname = "NAME"; char firstchar = '\0'; BufferedReader br; BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); String drive = "C:\\"; try{ System.out.print("Enter the main drive (i.e. C:\\, D:\\, E:\\): "); drive = stdin.readLine(); } catch(IOException e){ e.printStackTrace(); System.exit(-1); } try { br = new BufferedReader(new FileReader(drive + "Stuff\\Java\\Input\\Data.txt")); while(name != null){ try { name = br.readLine(); if(name != null){ firstpart = name.substring(0, 3); firstpart = firstpart.replaceFirst("MAC", "MC"); firstpart = firstpart.replaceFirst("KN", "N"); firstpart = firstpart.replaceFirst("K", "C"); firstpart = firstpart.replaceFirst("PH", "F"); firstpart = firstpart.replaceFirst("PF", "F"); firstpart = firstpart.replaceFirst("SCH", "S"); lastpart = name.substring(name.length() - 2, name.length()); lastpart = lastpart.replaceFirst("EE", "Y"); lastpart = lastpart.replaceFirst("IE", "Y"); lastpart = lastpart.replaceFirst("DT", "D"); lastpart = lastpart.replaceFirst("RT", "D"); lastpart = lastpart.replaceFirst("RD", "D"); lastpart = lastpart.replaceFirst("NT", "D"); lastpart = lastpart.replaceFirst("ND", "D"); finalname = firstpart.substring(1, firstpart.length()) + name.substring(firstpart.length(), name.length() - 2) + lastpart; firstchar = firstpart.charAt(0); finalname = finalname.replaceAll("EV", "AF"); finalname = finalname.replaceAll("E", "A"); finalname = finalname.replaceAll("I", "A"); finalname = finalname.replaceAll("O", "A"); finalname = finalname.replaceAll("U", "A"); finalname = finalname.replaceAll("Q", "G"); finalname = finalname.replaceAll("Z", "S"); finalname = finalname.replaceAll("M", "N"); finalname = finalname.replaceAll("KN", "N"); finalname = finalname.replaceAll("K", "C"); finalname = firstchar + finalname; finalname = finalname.replaceAll("SCH", "S"); firstchar = finalname.charAt(0); finalname = finalname.substring(1, finalname.length()); finalname = finalname.replaceAll("PH", "F"); //H stuff while(finalname.contains("H")){ for(int i = 0; i < finalname.length(); i++){ if(finalname.charAt(i) == 'H'){ if(i == 0){ //Position is 0, check the first character if(!isVowel(firstchar) || !isVowel(finalname.charAt(i + 1))){ finalname = finalname.substring(1, finalname.length()); } } else if(i != 0 && i < finalname.length()){ if(!isVowel(finalname.charAt(i - 1)) || !isVowel(finalname.charAt(i + 1))){ String first = finalname.substring(0, i); String last = finalname.substring(i + 1, finalname.length()); finalname = first + last; } } else if(i == finalname.length() - 1){ if(!isVowel(finalname.charAt(i - 1))){ finalname = finalname.substring(0, finalname.length()); } } } } } //W Stuff while(finalname.contains("W")){ for(int i = 0; i < finalname.length(); i++){ if(finalname.charAt(i) == 'W'){ if(i == 0){ //Position is 0, check the first character if(isVowel(firstchar)){ finalname = finalname.substring(1, finalname.length()); } } else if(i != 0){ if(isVowel(finalname.charAt(i - 1))){ String first = finalname.substring(0, i); String last = finalname.substring(i + 1, finalname.length()); finalname = first + last; } } } } } for(int i = 0; i < finalname.length() - 1; i++){ if(finalname.charAt(i) == finalname.charAt(i + 1)){ String first = finalname.substring(0, i + 1); String last = finalname.substring(i + 2, finalname.length()); finalname = first + last; i -= 1; } } //Last character s, remove if(finalname.charAt(finalname.length() - 1) == 'S'){ finalname = finalname.substring(0, finalname.length() - 1); } //Last characters ay, replace with y if(finalname.charAt(finalname.length() - 1) == 'Y' && finalname.charAt(finalname.length() - 2) == 'A'){ finalname = finalname.substring(0, finalname.length() - 2); finalname += 'Y'; } //Last character a, remove if(finalname.charAt(finalname.length() - 1) == 'A'){ finalname = finalname.substring(0, finalname.length() - 1); } System.out.println(firstchar + finalname); } } catch(IOException e){ e.printStackTrace(); System.exit(-1); } } } catch(FileNotFoundException e){ e.printStackTrace(); System.exit(-1); } } static private boolean isVowel(char c){ c = Character.toUpperCase(c); return (c == 'A'); } }