This question has already been answered:

Hello, I need to write a program that will store: name, phone number, email address. The program asks you to select a search mode (by name, phone number or email address). The program asks to enter a specific value and list all the information related to it in the form: Name: name, phone number, email address: email address.

I can't do findPerson (search based on the search criteria that the user chooses)

class Main

import java.util.Scanner; public class Main { public static Scanner in = new Scanner(System.in); public static void main(String[] args) { Person person1 = new Person("Julia", "65467547", "Julia@com"); Person person2 = new Person("Asia", "7547", "Asia@com"); Person person3 = new Person("Denis", "547547", "Denis@com"); Person person4 = new Person("Evangelina", "7547", "Evangelina@com"); Person person5 = new Person("Nine", "65467547", "Nine@com"); Person person6 = new Person("Dmitriy", "675467547", "Dmitriy@com"); //Person.showAll(); //Person.showMainMenu(); System.out.print("If you want to search by name, please enter 1, by number 2, by email 3: "); String searchType = in.nextLine(); System.out.print("Please enter a search term: "); String searchString = in.nextLine(); // Person.findPerson("1","Nine"); } } 

class Person

 import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.Vector; public class Person { public static Scanner in = new Scanner(System.in); private String name; private String phone; private String email; private static Vector < Person > ekstensja = new Vector < Person > (); /* public static array by przechowac wszystkich 'Person' objects */ public Person(String name, String phone, String email) { this.name = name; this.phone = phone; this.email = email; addPerson(this); /* tutaj powinnismy dodac do listy this */ } String getName() { return name; } String getPhone() { return phone; } String getEmail() { return email; } public static void addPerson(Person person) { ekstensja.add(person); } public static void removePerson(Person person) { ekstensja.remove(person); } public static void showAll() { System.out.println("Ekstensja klasy Person: "); for (Person person: ekstensja) { System.out.println(person); } } public String toString() { return "\n\nName: " + this.getName() + "\nPhone number: " + this.getPhone() + "\nEmail: " + this.getEmail(); } // Person search public static void findPerson(String searchType, String searchString) { for (Person person: ekstensja) { switch (searchType) { case "1": if (searchType == "1" && person.name == searchString) System.out.println(person); //FIND BY NAME break; case "2": if (searchType == "2" && person.phone == searchString) System.out.println(person); //FIND BY PHONE break; case "3": if (searchType == "3" && person.email == searchString) System.out.println(person); //FIND BY EMAIL break; } } } } 

Reported as a duplicate by zRrr members, pavlofff java Apr 6 '18 at 2:03 pm

A similar question was asked earlier and an answer has already been received. If the answers provided are not exhaustive, please ask a new question .

  • Oftop, review your Person class, it’s not at all right to use the Person list in the Person class. Try to make the class Persons to access and work with the list of Person, it will be more correct. - ezhov_da

1 answer 1

The findPerson () method has been added to Main, this method has been adjusted to Person.

class Main

  import java.util.Scanner; public class Main { public static Scanner in = new Scanner(System.in); public static void main(String[] args) { Person person1 = new Person("Julia", "65467547", "Julia@com"); Person person2 = new Person("Asia", "7547", "Asia@com"); Person person3 = new Person("Denis", "547547", "Denis@com"); Person person4 = new Person("Evangelina", "7547", "Evangelina@com"); Person person5 = new Person("Nine", "65467547", "Nine@com"); Person person6 = new Person("Dmitriy", "675467547", "Dmitriy@com"); //Person.showAll(); //Person.showMainMenu(); System.out.print("If you want to search by name, please enter 1, by number 2, by email 3: "); String searchType = in.nextLine(); System.out.print("Please enter a search term: "); String searchString = in.nextLine(); //Person.findPerson("1","Nine"); Person.findPerson(searchType,searchString); } } 

class Person

 import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.util.Vector; public class Person { public static Scanner in = new Scanner(System.in); private String name; private String phone; private String email; private static Vector<Person> ekstensja = new Vector<Person>(); /* * public static array by przechowac wszystkich 'Person' objects */ public Person(String name, String phone, String email) { this.name = name; this.phone = phone; this.email = email; addPerson(this); /* * tutaj powinnismy dodac do listy this */ } String getName() { return name; } String getPhone() { return phone; } String getEmail() { return email; } public static void addPerson(Person person) { ekstensja.add(person); } public static void removePerson(Person person) { ekstensja.remove(person); } public static void showAll() { System.out.println("Ekstensja klasy Person: "); for (Person person : ekstensja) { System.out.println(person); } } public String toString() { return "\n\nName: " + this.getName() + "\nPhone number: " + this.getPhone() + "\nEmail: " + this.getEmail(); } // Person search public static void findPerson(String searchType, String searchString) { // for (Person person: ekstensja) { switch (searchType) { case "1": for (Person persons : ekstensja) { if (persons.name.equals(searchString)) { System.out.println(persons.name + ' ' + persons.phone + ' '+ persons.email); } } // FIND BY NAME break; case "2": for (Person persons : ekstensja) { if (persons.phone.equals(searchString)) { System.out.println(persons.name + ' ' + persons.phone + ' '+ persons.email); } } // FIND BY PHONE break; case "3": for (Person persons : ekstensja) { if (persons.email.equals(searchString)) { System.out.println(persons.name + ' ' + persons.phone + ' '+ persons.email); } } // FIND BY EMAIL break; //} } } }