Related questions
Concept explainers
please use the name, phonenumber and phonebookentry to build this.
The three parallel arrays are gone — replaced with a single array of type PhonebookEntry.
You should be reading in the entries using the read method of your PhonebookEntry class (which in turn uses the read methods of the Name and PhoneNumber classes).
Use the equals methods of the Name and PhoneNumber classes in your lookup and reverseLookup methods.
Use the toString methods to print out information.
Make 100 the capacity of your Phonebook array
Throw an exception (of class Exception) if the capacity of the Phonebook array is exceeded.
Place a try/catch around your entire main and catch both FileNotFoundExceptions and Exceptions (remember, the order of appearance of the exception types in the catch blocks can make a difference).
Do not use
BufferedReader while(true)
breaks
The name of your application class should be Phonebook. Also, you should submit ALL your classes (i.e., Name, Strip off public from all your class definintions
name class:
import java.io.*;
import java.util.*;
public class Name {
public Name(String last, String first) {
this.last = last;
this.first = first;
}
public Name(String first) {
this("", first);
}
public boolean equals(Name same) {
return first.equals(same.first) && last .equals(same.last);
}
public String toString() {
return first + " " + last;
}
public String getFormal() {
return first + " " + last;
}
public String getOfficial() {
return last + ", " + first;
}
public static Name read(Scanner scan) {
if (!scan.hasNext())
return null;
String first = scan.next();
String last = scan.next();
return new Name(first, last);
}
public String getInitials() {
return Character.toUpperCase(first.charAt(0)) + "." + Character.toUpperCase(last.charAt(0))+".";
}
private String last, first;
public static void main(String [] args) throws Exception {
Scanner scan = new Scanner(new File("names.text"));
int count = 0;
Name readName = read(scan);
Name readLastName =null;
while(readName != null) {
if(readLastName!=null && readName!=null && readLastName.equals(readName)){
System.out.println("Duplicate name \""+readName+"\" discovered");
}
else{
System.out.println("name: " + readName);
System.out.println("formal: " + readName.getFormal());
System.out.println("official: " + readName.getOfficial());
System.out.println("initials: " + readName.getInitials());
System.out.println();
}
count++;
readLastName= readName;
readName = read(scan);
}
System.out.println("---");
System.out.println(count + " names processed.");
}
}
Phonenumber class:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class PhoneNumber {
private String num;
public PhoneNumber(String num) {
this.num = num;
}
public String getAreaCode() {
return num.substring(1, 4);
}
public String getExchange() {
return num.substring(5, 8);
}
public String getLineNumber() {
return num.substring(9);
}
public boolean isFreeToll() {
if (getAreaCode().charAt(0) == '8') {
return true;
}
return false;
}
public String toString() {
return "phone number: " + num + "\narea code: " + getAreaCode()
+ "\nexchange: " + getExchange() + "\nline number: "
+ getLineNumber();
}
public boolean equals(PhoneNumber phoneNum) {
if (phoneNum.getAreaCode().compareTo(this.getAreaCode()) == 0
&& phoneNum.getExchange().compareTo(this.getExchange()) == 0
&& phoneNum.getLineNumber().compareTo(this.getLineNumber()) == 0) {
return true;
}
return false;
}
public static String read(Scanner scan) {
if (scan.hasNextLine()) {
return scan.nextLine();
}
return null;
}
public static void main(String[] args) throws FileNotFoundException {
Scanner scan = new Scanner(new File("numbers.text"));
PhoneNumber phoneNumNext, phoneNum = null;
int counts = 0;
String val = PhoneNumber.read(scan);
while (val != null) {
if (phoneNum == null) {
phoneNum = new PhoneNumber(val);
System.out.println(phoneNum + "\nis toll free: "
+ phoneNum.isFreeToll() + "\n");
counts++;
} else {
phoneNumNext = new PhoneNumber(val);
if (phoneNum.equals(phoneNumNext)) {
System.out.println("Duplicate phone number \"("
+ phoneNumNext.getAreaCode() + ")"
+ phoneNumNext.getExchange() + "-"
+ phoneNumNext.getLineNumber() + "\" discovered");
} else {
System.out.println(phoneNumNext + "\nis toll free: "
+ phoneNumNext.isFreeToll() + "\n");
}
counts++;
phoneNum = phoneNumNext;
}
val = PhoneNumber.read(scan);
}
System.out.println("---");
System.out.println(counts + " phone numbers processed.");
}
}
For example, if the file phonebook.text contains:
Arnow David (123)456-7890
Harrow Keith (234)567-8901
Jones Jackie (345)678-9012
Augenstein Moshe (456)789-0123
Sokol Dina (567)890-1234
Tenenbaum Aaron (678)901-2345
Weiss Gerald (789)012-3456
Cox Jim (890)123-4567
Langsam Yedidyah (901)234-5678
Thurm Joseph (012)345-6789
Trending nowThis is a popular solution!
Step by stepSolved in 4 steps with 7 images
- also need help Write a second constructor that takes a String array of pages as input and sets the String array instance variable equal to the input. Continue to default the page number to zero. Part 2: Write a getter and a setter method for the current page number variable. The setter should check to make sure that the input is a valid page number and only update the variable if the new value is valid. Part 3: Write a getCurrentPage method that returns the String of the current page indexed by current_page. public class Ebook{ private String[] pages; private int current_page; //constructor public Ebook() { this.pages = {"See Spot.", "See Spot run.", "Run, Spot, run."}; this.current_page = 0; }}arrow_forwardPlease help me with this using JavaScriptarrow_forwardCreate a class called Student that models a student at Carleton University. A student's state consists of a name (String), id number (int) and a list of grades (array of double). Your class must have a constructor that has three input parameters (name, id and grade list) and sets the initial state for the object. Include a toString() method that returns a useful string representation of a student object. The string representation should contain the student's name, ID number, and the number of grades they have recorded (so NOT include all the grades). Include a gradesInRange(double lower, double upper) method that returns the number of grades that this student has that are in the range [lower,upper]. That is, the it returns the number of grades that are greater than or equal to lower and less than or equal to upper. Example Usage: double[] grades {81.2, 93.2, 76,2, 84.6, 63.11, 79.8}; Student s new Student("cat", 100123987, grades); s.gradesInRange (80,100); int num_grades_A // assert...arrow_forward
- Update it to create a class Student that includes four properties: an id (type Integer), a name (type String), a Major (type String) and a Grade (type Double). Use class Student to create objects (using buttonAdd) that will be read from the TextFields then save it into an ArrayList. Perform the following queries on the ArrayList of Student objects and show the results on the listViewStudents (Hint: add buttons as needed): d) Use lambdas and streams to calculate the total average of all Students grades, then show the result. 1. Ch3HW; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class MainApp extends Application{ @Override publicvoidstart(StageprimaryStage) throwsException { FXMLLoader loader =newFXMLLoader(getClass().getResource("StudentScreen.fxml")); Parent parent = loader.load(); Scene scene =newScene(parent);...arrow_forwardComplete the Course class by implementing the courseSize() method, which returns the total number of students in the course. Given classes: Class LabProgram contains the main method for testing the program. Class Course represents a course, which contains an ArrayList of Student objects as a course roster. (Type your code in here.) Class Student represents a classroom student, which has three fields: first name, last name, and GPA. Ex. For the following students: Henry Bendel 3.6 Johnny Min 2.9 the output is: Course size: 2 public class LabProgram { public static void main (String [] args) { Course course = new Course(); // Example students for testing course.addStudent(new Student("Henry", "Bendel", 3.6)); course.addStudent(new Student("Johnny", "Min", 2.9)); System.out.println("Course size: " + course.courseSize()); } } public class Student { private String first; // first name private String last; // last name private...arrow_forwardWrite a method for the farmer class that allows a farmer object to pet all cows on the farm. Do not use arrays.arrow_forward
- Exercise #2 Implement an instance method belonging to the IntArrayBag class that takes two input parameters, oldVal and newVal. The method replaces each oldVal element in the array with newVal. Make sure to include the method header.arrow_forwardI need to have a main method in a Tester class that will: Fill an array of type Vehicle[] of size NUM_VEHICLES with Vehicle objects. You need to generate a random number between 0 and 2. If the number is 0, add a Vehicle to the array. 1, add a Car, 2, add a Boat. The Vehicle/Car/Boat that you add must be initialized with a random efficiency between 0 and 100.0. Do this until you have added NUM_VEHICLES objects to the array How do I write it so that the array generates random numbers 0 through 2 (inclusive) and how would I then correlate those numbers to a different class object?arrow_forwardThe WalkingBoard class represents a board with a figure standing on position x,y. Each position also has a value associated with it. Initialise the board in two different ways: either make it size×ばつsize or use the given dimensions and initial values. About the second way: The rows may not be uniform: they may have differing numbers of columns in them. Don’t simply take the argument array: create its copy in the field. All values are set to BASE_TILE_SCORE, or to the given value if that’s bigger. Operations. getPosition: returns the values of x and y in an array. getTile: returns the value of the of the board position. Let this condition be checked by the helper method isValidPosition. If it is an invalid position, throw an IllegalArgumentException. getTiles: returns the values of all the board positions. Don’t let the field contents be accessed from the caller: create and return an exact copy of the structure. getXStep and getYStep: helper methods, they indicate how far (-1,...arrow_forward
- 4. Say we wanted to get an iterator for an ArrayList and use it to loop over all items and print them to the console. What would the code look like for this? 5. Write a method signature for a method called foo that takes an array as an argument. The return type is void. 6. What is the difference between remove and clear in ArrayLists.arrow_forwardHello! I need some help with my Java homework. Please use Eclipse Please add comments to the to program so I can understand what the code is doing and learn Create a new Eclipse project named so as to include your name (eg smith15 or jones15). In this project, create a new package with the same name as the project. In this package, write a solution to the exercise noted below. Implement the following method that returns the maximum element in an array: public static <E extends Comparable<E>> E max(E[] list) Write a test program that generates 10 random integers, invokes this method to find the max, and then displays the random integers sorted smallest to largest and then prints the value returned from the method. Max sure the the last sorted and returned value as the same!arrow_forwardBased on the information in the screenshots, please answer the following question below. The language used is Java and please provide the code for it with the explanation. Create a testing class named "PlanTest". Under this class, there needs to be another static method besides the main method: You will need to create a static method named "prerequisiteGenerator" under "PlanTest", which return a random 2D array containing prerequisite pairs (e.g., {{1, 3}, {2, 3}, {4, 2}}). The value range of a random integer is [0, 10] (inclusive). This method will accept an integer parameter, which specifies the length of the returned array: int[][] pre = prerequisiteGenerator(3); // possibly {{1, 3}, {2, 3}, {4, 2}} Under the main method, you will need to use prerequisiteGenerator to generate random prerequisite pair lists, and perform tests on plan method at least three examples by printing proper messages. Given 4 courses and prerequisites as [[1,0], [2,0], [3,1]] It is possible to take all...arrow_forward
- Text book imageDatabase System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationText book imageStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONText book imageDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- Text book imageC How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONText book imageDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningText book imageProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education