public class CommandWords { // a constant array that holds all valid command words private static final String[] validCommands = { "go", "quit", "help", "look", "pickup", "combine", "use" }; /** * Constructor - initialise the command words. */ public CommandWords() { // nothing to do at the moment... } /** * Check whether a given String is a valid command word. * @return true if it is, false if it isn't. */ public boolean isCommand(String aString) { for(int i = 0; i < validCommands.length; i++) { if(validCommands[i].equals(aString)) return true; } // if we get here, the string was not found in the commands return false; } /** * Print all valid commands to System.out. */ public void showAll() { for(String command: validCommands) { System.out.print(command + " "); } System.out.println(); } } ________________________________________ public class Command { private String commandWord; private String secondWord; /** * Create a command object. First and second word must be supplied, but * either one (or both) can be null. * @param firstWord The first word of the command. Null if the command * was not recognised. * @param secondWord The second word of the command. */ public Command(String firstWord, String secondWord) { commandWord = firstWord; this.secondWord = secondWord; } /** * Return the command word (the first word) of this command. If the * command was not understood, the result is null. * @return The command word. */ public String getCommandWord() { return commandWord; } /** * @return The second word of this command. Returns null if there was no * second word. */ public String getSecondWord() { return secondWord; } /** * @return true if this command was not understood. */ public boolean isUnknown() { return (commandWord == null); } /** * @return true if the command has a second word. */ public boolean hasSecondWord() { return (secondWord != null); } }