/** * */ import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.Scanner; /** * @author Brian * */ public class ELIC { static String input = "732559968"; static ArrayList wordList = new ArrayList(); public static void findWord(final int k) { if (input.substring(k, k + 1).equals("2")) { for (int z = 0; z < wordList.size(); z++) { if (wordList.get(z).startsWith("a")) { findWord(k + 1, "a"); } if (wordList.get(z).startsWith("b")) { findWord(k + 1, "b"); } if (wordList.get(z).startsWith("c")) { findWord(k + 1, "c"); } } // abc; } else if (input.substring(k, k + 1).equals("3")) { for (int z = 0; z < wordList.size(); z++) { if (wordList.get(z).startsWith("d")) { findWord(k + 1, "d"); } if (wordList.get(z).startsWith("e")) { findWord(k + 1, "e"); } if (wordList.get(z).startsWith("f")) { findWord(k + 1, "f"); } } // def; } else if (input.substring(k, k + 1).equals("4")) { for (int z = 0; z < wordList.size(); z++) { if (wordList.get(z).startsWith("g")) { findWord(k + 1, "g"); } if (wordList.get(z).startsWith("h")) { findWord(k + 1, "h"); } if (wordList.get(z).startsWith("i")) { findWord(k + 1, "i"); } } // ghi; } else if (input.substring(k, k + 1).equals("5")) { for (int z = 0; z < wordList.size(); z++) { if (wordList.get(z).startsWith("j")) { findWord(k + 1, "j"); } if (wordList.get(z).startsWith("k")) { findWord(k + 1, "k"); } if (wordList.get(z).startsWith("l")) { findWord(k + 1, "l"); } } // jkl; } else if (input.substring(k, k + 1).equals("6")) { for (int z = 0; z < wordList.size(); z++) { if (wordList.get(z).startsWith("m")) { findWord(k + 1, "m"); } if (wordList.get(z).startsWith("n")) { findWord(k + 1, "n"); } if (wordList.get(z).startsWith("o")) { findWord(k + 1, "o"); } } // mno; } else if (input.substring(k, k + 1).equals("7")) { for (int z = 0; z < wordList.size(); z++) { if (wordList.get(z).startsWith("p")) { findWord(k + 1, "p"); } if (wordList.get(z).startsWith("q")) { findWord(k + 1, "q"); } if (wordList.get(z).startsWith("r")) { findWord(k + 1, "r"); } if (wordList.get(z).startsWith("s")) { findWord(k + 1, "s"); } } // pqrs; } else if (input.substring(k, k + 1).equals("8")) { for (int z = 0; z < wordList.size(); z++) { if (wordList.get(z).startsWith("t")) { findWord(k + 1, "t"); } if (wordList.get(z).startsWith("u")) { findWord(k + 1, "u"); } if (wordList.get(z).startsWith("v")) { findWord(k + 1, "v"); } } // tuv; } else if (input.substring(k, k + 1).equals("9")) { for (int z = 0; z < wordList.size(); z++) { if (wordList.get(z).startsWith("w")) { findWord(k + 1, "w"); } if (wordList.get(z).startsWith("x")) { findWord(k + 1, "x"); } if (wordList.get(z).startsWith("y")) { findWord(k + 1, "y"); } if (wordList.get(z).startsWith("z")) { findWord(k + 1, "z"); } } // wxyz; } } public static boolean findWord(final int k, final String prefix) { if(k wordList = new ArrayList(); final Scanner wordsIn = new Scanner(new File(System.getProperty("user.dir") + File.separator + "SINGLE.TXT")); while (wordsIn.hasNextLine()) { wordList.add(wordsIn.nextLine()); } findWord(0); } }