import java.io.*; import java.util.ArrayList; import java.util.Scanner; public class AddressBook2 { private ArrayList addrList; public AddressBook2(String inputFile) throws IOException { addrList = new ArrayList(); File file = new File(inputFile); Person quickPerson; Scanner bookFile = new Scanner(file); String line; String[] splitLine = new String[3]; while (bookFile.hasNext()) { line = bookFile.nextLine(); splitLine = line.split("~"); quickPerson = new Person(); quickPerson.setFirstName(splitLine[0]); quickPerson.setLastName(splitLine[1]); quickPerson.setAddress(splitLine[2]); addrList.add(quickPerson); } } public void sortBook() { Person tempPer; for (int i = 0; i < addrList.size()-1; i++) { if (addrList.get(i+1).getLastName().compareTo(addrList.get(i).getLastName()) < 0) { tempPer = addrList.get(i+1); addrList.set(i+1, addrList.get(i)); addrList.set(i, tempPer); } if (addrList.get(i+1).getLastName().compareTo(addrList.get(i).getLastName()) == 0) { for (int j = 0; j < addrList.size()-1; j++) { if (addrList.get(j+1).getFirstName().compareTo(addrList.get(j).getFirstName()) < 0) { tempPer = addrList.get(j+1); addrList.set(j+1, addrList.get(j)); addrList.set(j, tempPer); } } } } } public void printBook() { int i = 0; if (addrList.size() != 0) { do { System.out.println(addrList.get(i).toString()); i++; } while (i < addrList.size()); } else System.out.println("No entries available for printing!"); } public static void main(String[] args) throws IOException { AddressBook book = new AddressBook("myAddressBook.txt"); char charChoice; Person userPer; Scanner keyboard = new Scanner(System.in); String userChoice; String[] splitChoice = new String[4]; book.printInfo(); do { book.printMenu(); userChoice = keyboard.nextLine(); splitChoice = userChoice.split(" ", 4); charChoice = splitChoice[0].charAt(0); switch (charChoice) { case 'a': userPer = new Person(splitChoice[1], splitChoice[2], splitChoice[3]); book.addPerson(userPer); break; case 'f': System.out.println(book.findAddress(splitChoice[1], splitChoice[2])); break; case 'p': book.printBook(); break; case 'r': book.removePerson(splitChoice[1], splitChoice[2]); break; case 's': book.sortBook(); break; default: System.out.println("The choice you have entered is not available!"); } } while (charChoice != 'q'); } }