 <p>Just make use of arrays:</p> <pre><code>import java.util.Scanner; import java.util.Random; public class HangmanAssignment { static Scanner numIn = new Scanner(System.in); static Scanner strIn = new Scanner(System.in); // Used to hold the user's previous guesses into a string. static StringBuffer buffer = new StringBuffer(); public static void main(String[] args) { String category, word, displayWord = ""; int wordLength, position, lettersRemaining, totalLives = 10; boolean isGuessInWord; char guess; StringBuffer prevGuessedLetters; char temp []= new char [20]; category = getCategory(); word = getWord(category); // Gets the length of the word. wordLength = word.length(); for(int i =0; i &lt;wordLength;i++) temp[i]='*'; lettersRemaining = wordLength; System.out.println("The length of your word is: " + wordLength + " characters."); // Generates as many '*' as long as word's length and stores it in 'displayWord'. for (int i = 0; i &lt; wordLength; i++) { displayWord += "-"; // System.out.println(displayWord); /* Testing */ } while (lettersRemaining &gt; 0 &amp;&amp; totalLives &gt; 0) { // Prompts user to guess a letter. System.out.println("Guess a letter (Note: there are " + wordLength + " letters)"); guess = strIn.findWithinHorizon(".", 0).charAt(0); // Checks if the letter guessed in within 'word'. isGuessInWord = (word.indexOf(guess)) != -1; // Checks if the guess is in within 'word'. if (isGuessInWord == false) { totalLives--; System.out.println("Sorry, but '" + guess + "' was not in the word."); if (totalLives &lt; 1) { System.out.println("It seems like you have no lives left! :("); } else if (totalLives == 1) { System.out.println("Careful! You only have 1 life left!"); } else { System.out.println("You still have " + (totalLives) + " lives left!"); } } else { System.out.println("Nice one! The letter '" + guess + "' was in the word!"); for (position = 0; position &lt; wordLength; position++) { for (position = 0; position &lt; wordLength; position++) { if (word.charAt(position) == guess) { temp[position]=guess; /* displayWord.charAt(position).equals(word.charAt(position)); */ lettersRemaining--; } } } } for(int i = 0;i&lt;wordLength;i++){ System.out.print(temp[i]); } // Holds the user's previously guessed letters and the number of letters in the word that are still unknown. System.out.println(); prevGuessedLetters = buffer.append(guess); System.out.println("Previously guessed letters: " + (prevGuessedLetters)); System.out.println("Letters remaining: " + (lettersRemaining)); System.out.println(""); // Checks win/lose conditions. if (lettersRemaining == 0) { System.out.println("Congratulations, '" + word + "' was the correct answer!"); } if (totalLives &lt; 1) { System.out.println("Sorry, you lose!"); System.out.println("The correct answer was '" + word + "'."); { break; } } } } public static String getCategory() { String category; System.out.println("====================================="); System.out.println("Welcome to the Hangman Game!"); System.out.println("====================================="); while (true) { System.out.println("Choose from the following categories:"); System.out.println("1. Car Brands"); System.out.println("2. Countries"); System.out.println("3. Animals"); System.out.println("4. Fruit"); System.out.println(""); category = strIn.nextLine(); if (category.toLowerCase().equals("1") || (category.toLowerCase().equals("one"))) { category = "car brands"; } else if (category.toLowerCase().equals("2") || (category.toLowerCase().equals("two"))) { category = "countries"; } else if (category.toLowerCase().equals("3") || (category.toLowerCase().equals("three"))) { category = "animals"; } else if (category.toLowerCase().equals("4") || (category.toLowerCase().equals("four"))) { category = "fruit"; } if (category.toLowerCase().equals("car brands") || category.toLowerCase().equals("countries") || category.toLowerCase().equals("animals") || category.toLowerCase().equals("fruit")) { System.out.println(""); System.out.println("Nice Choice! You have chosen the '" + category + "' category!"); System.out.println(""); break; } else { System.out.println("Sorry, but '" + category + "' is not a valid input. Try Again!"); System.out.println(""); } } return category; } public static String getWord(String category) { String[] carBrandsWord = {"toyota", "ferrari", "honda", "hyundai", "lamborghini", "dodge", "ford", "chevrolet", "fiat", "lexus", "volkswagen", "acura", "audi", "bentley", "bugatti", "buick", "cadillac"}; String[] countriesWord = {"canada", "england", "france", "switzerland", "australia", "sweden", "greece", "italy", "mexico", "brazil", "india", "china", "russia", "japan", "spain", "ireland"}; String[] animalsWord = {"cat", "dog", "parrot", "bear", "tiger", "monkey", "zebra", "hippopotamus", "chicken", "horse", "cow", "starfish", "squid", "wolf", "hyena", "cheetah", "penguin"}; String[] fruitsWord = {"apple", "banana", "orange", "grapes", "grapefruit", "apricot", "cherry", "guava", "kiwi", "mango", "melon", "olive", "pineapple", "strawberry", "watermelon"}; String word = ""; if (category.toLowerCase().equals("car brands")) { Random random = new Random(); int index = random.nextInt(carBrandsWord.length); word = (carBrandsWord[index]); } else if (category.toLowerCase().equals("countries")) { Random random = new Random(); int index = random.nextInt(countriesWord.length); word = (countriesWord[index]); } else if (category.toLowerCase().equals("animals")) { Random random = new Random(); int index = random.nextInt(animalsWord.length); word = (animalsWord[index]); } else { Random random = new Random(); int index = random.nextInt(fruitsWord.length); word = (fruitsWord[index]); } return word; } } </code></pre>