import java.util.*; import java.io.*; public class Search { public static int search(String data[], String key) { int addr = 0; while (addr < data.length) { if (data[addr].equals(key)) return(addr); addr++; } return -1; } public static void main(String[] args) { String [] states = new String[50]; String [] months = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; int stateNum; int monthNum; /**************************************************************************/ // BEGIN CODE FOR READING FROM FILE: Text Reference pages 695-698 Scanner inputStream = null; try // try opening file { inputStream = new Scanner(new File("states.txt")); } catch(FileNotFoundException e) // Define error handling { System.out.println("Error opening File"); System.exit(0); // terminates execution } int index = 0; // start storing in slot 0 while(inputStream.hasNextLine()) // file exists ==> read data; { states[index] = inputStream.nextLine(); index++; } // END CODE FOR READING FROM FILE: /**************************************************************************/ // BEGIN CODE FOR READING INPUT QUERIES Scanner keyboard = new Scanner(System.in); String query; System.out.print("Enter state name (or Exit): "); query = keyboard.nextLine(); while (!query.equals("Exit")) // States first { stateNum = search(states,query)+1; if (stateNum > 0) { System.out.println(query + " is state number " + stateNum); } else { System.out.println(query + " not found in database "); } System.out.print("Enter state name (or Exit): "); query = keyboard.nextLine(); } System.out.print("Enter month name (or Exit): "); query = keyboard.nextLine(); while (!query.equals("Exit")) // Months next { monthNum = search(months,query)+1; if (monthNum > 0) { System.out.println(query + " is month number " + monthNum); } else { System.out.println(query + " not found in database "); } System.out.print("Enter month name (or Exit): "); query = keyboard.nextLine(); } } }