JAVA адресная книга с поиском [дубликат]

516
07 апреля 2018, 22:50

На данный вопрос уже ответили:

  • Как сравнивать строки в Java? 2 ответа

Здравствуйте, Мне нужно написать программу, в которой будут храниться: имя, номер телефона, адрес электронной почты. Программа просит выбрать режим поиска (по имени, номеру телефона или адресу электронной почты). Программа просит ввести конкретное значение и перечислить всю информацию, относящуюся к нему в форме: Имя: имя, номер телефона, адрес электронной почты: адрес электронной почты.

У меня не получаеться сделать findPerson (поиск базируясь на критериях поиска, которые выберет пользователь)

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;
            }
        }
    }

}
Answer 1

В Main добавлен метод findPerson(), в 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;
        //}
        }
    }
}
READ ALSO
Считывание их файла, InputMismatchException

Считывание их файла, InputMismatchException

Не удается прочитать файлПрограмма палает с InputMismatchExceptionна 4 строке файла

259
Как из одного класса вызвать другой класс?

Как из одного класса вызвать другой класс?

Как сделать, чтобы из одного класса перейти к другому классу? Например, имеются определённые условия, при которых должен начать выполнение...

470
Ошибки NetBeans 8.2 IDE

Ошибки NetBeans 8.2 IDE

Изначально IDE работала нормально, но с некоторых пор почему-то перестала корректно запускатьсяИдет загрузка и подклчючение модулей, но после...

305
Класс uses or overrides a deprecated API

Класс uses or overrides a deprecated API

Есть такой класс:

316