This is a short program which utilizes a TreeSet to respond to a user on whether a word exists in the English Lexicon or not. This program operates on a file “english.lex” (Just a heads up, this link will download the file, which is just a .txt of all the words in the english language… No viruses I promise!!)(That’s exactly what someone with an infected file they wanted you to click would say…).
The file provided is in a .lex format, but may be altered, and can be opened in any text editor.

/**
* Class which searches the English lexicon and lets user know if an entered word is
* a word in the English language.
*
* @author AidanTakami
* @since 1.0
*
*/
import java.util.Scanner;
import java.util.TreeSet;
import java.io.File;
import java.util.ArrayList;
public class WordChecker {
public static final String FILE_NAME = "english.lex";
public static TreeSet<String> lexTree = new TreeSet<String>();
/**
* Method which loads the file FILE_NAME into an ArrayList and then into lexTree
*/
public static void makeTree(){
ArrayList<String> lexList = new ArrayList();
//tries to scan the file and put all lines into an ArrayList.
try{
//Creates new file object, a new scanner, and scans the file into the Scanner
File newFile = new File(FILE_NAME);
Scanner fileScan = new Scanner(System.in);
fileScan = new Scanner(newFile);
//loops through Scanner, adding each nextLine to ArrayList
while(fileScan.hasNextLine()){
lexList.add(fileScan.nextLine());
}
}
//Catches an exception which I saw online
catch(Exception ex){
ex.printStackTrace();
}
//iterates through arrayList, adding each String to lexTree
for(int rep = 0; rep < lexList.size(); rep++){ lexTree.add(lexList.get(rep)); } } /** * takes a string given by the user and returns whether it is contained in the * lexTree or not. * * @param word String given by the user. * @return boolean * @since 1.0 */ public static boolean isWord(String word){ return lexTree.contains(word); } /** * Main function for testing * * @since 1.0 */ public static void main(String[] args){ //makes scanner, tree, and prints intro makeTree(); Scanner input = new Scanner(System.in); System.out.println("Welcome to the Word Checker!"); System.out.println("Loading file " + FILE_NAME + " which contains " + lexTree.size() + " words!"); System.out.println("Please enter a word or hit enter to quit."); //loop takes user input and returns answer while(true){ System.out.print("> ");
//stores user input in String
String word = input.nextLine();
System.out.println();;
//if string is empty, signifying enter key, breaks loop
if(word.isEmpty()) break;
//calls isWord, and responds accordingly
boolean lexBool = isWord(word);
if(lexBool){
System.out.println(word + " is a valid word");
}
else{
System.out.println(word + " is NOT a valid word.");
}
}
System.out.println("Goodbye!");
}
}