Skip to content

Instantly share code, notes, and snippets.

@YanchevskayaAnna
Created August 17, 2016 18:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save YanchevskayaAnna/7637e23cbd69ec1360bd5430c3a1d0a0 to your computer and use it in GitHub Desktop.
Save YanchevskayaAnna/7637e23cbd69ec1360bd5430c3a1d0a0 to your computer and use it in GitHub Desktop.
package newcontactlist;
import java.util.List;
import java.util.Scanner;
import java.util.regex.*;
/**
* Contact test
*/
public class ContactListTest {
public static void main(String[] args) {
mainMenu();
}
public static void mainMenu() {
Scanner sc = new Scanner(System.in);
Contact contact0 = new Contact();
contact0.setName("Vasa");
contact0.setPhoneNumber("095 1232323");
Contact contact1 = new Contact("Kola", "097 2323232");
Contact contact2 = new Contact("Petya", "095 2323232");
Contact contact3 = new Contact("Anna", "097 54545454");
Contact contact4 = new Contact("Lena", "095 1111111");
Contact contact5 = new Contact("Lada", "097 5555555");
Contact contact6 = new Contact("Nadia", "095 1212121");
Contact contact7 = new Contact("Inokyntiy", "097 7777777");
ContactList list = new ContactList();
/* list.contactList.add(contact0); todo
list.contactList.add(contact1);
list.contactList.add(contact2);
list.contactList.add(contact3);
list.contactList.add(contact4);
list.contactList.add(contact5);
list.contactList.add(contact6);
list.contactList.add(contact7);*/
list.addToTheContactList(contact0);
list.addToTheContactList(contact1);
list.addToTheContactList(contact2);
list.addToTheContactList(contact3);
list.addToTheContactList(contact5);
list.addToTheContactList(contact6);
list.addToTheContactList(contact7);
System.out.println("Добро пожаловать в интерактивный контакт - лист!");
System.out.println(">>>>>>>MAIN MENU / ГЛАВНОЕ МЕНЮ<<<<<<<:");
System.out.println("Выберите действие");
System.out.println("\"0\" - Show All/Вывод на экран всех исходных контактов");
System.out.println("\"1\" - Show first 5 contacts/Показать первые 5 контактов");
System.out.println("\"2\" - Show last 5 contacts/Показать последние 5 контактов");
System.out.println("\"3\" - Show all MTC contacts/Показать все МТС контакты");
System.out.println("\"4\" - Show all Kievstar contacts/Показать все Киевстар контакты");
System.out.println("\"5\" - Remove Last Contact and show without him/Удалить последний контакт и показать без него");
System.out.println("\"6\" - Find contact by multiparameters(name or phone)/Поиск контакта по мультипараметру(имени или номеру)");
System.out.println("\"7\" - Add to the contactList from console/Добавление в контакт лист нового контакта из консоли");
System.out.println("\"8\" - Remove from contactList by multiparameters(name or phone) adn show contactList without him/\n" +
"Удаление контакта по мультипараметру(имени или номеру) и отображение контакт - листа без него");
System.out.println("\"9\" - Updating contact info. At first we find current contact by multiparameters(name or phone) and add new data\n" +
"from console");
// System.out.println("\"q\" - Exit from program/Выход из программы"); will be released later
System.out.print("Сделайте выбор пункта меню: ");
// System.out.println("=========================");
String selection = sc.nextLine();
String res = menuValidator(selection);
int sel = Integer.parseInt(res);
switch (sel) {
case 0: {
System.out.println("Все исходные контакты:");
// list.contactListShow(list.contactList);
list.contactListShow();//todo
subMenu();
}
break;
case 1: {
System.out.println("Первые 5 контактов:");
// list.contactListShowFirstFive(list.contactList); //todo
list.contactListShowFirst(5);
subMenu();
}
break;
case 2: {
System.out.println("Последние 5 контактов:");
//list.contactListShowLastFive(list.contactList);
list.contactListShowLastFive();
subMenu();
}
break;
case 3: {
System.out.println("MTC contacts: \n");
// list.contactListShowMTC(list.contactList);
list.contactListShowOperator("MTC");
subMenu();
}
break;
case 4: {
System.out.println("Kievstar contacts: \n");
list.contactListShowOperator("Kievstar");
subMenu();
}
break;
case 5: {
System.out.println("Удаление последнего контакта и отображение без него:");
/*list.removeLastContact(list.contactList); todo
list.contactListShow(list.contactList);*/
list.removeLastContact();
list.contactListShow();
subMenu();
}
break;
case 6: {
System.out.println("Поиск контакта по мультипараметру(имени или номеру):");
List<Contact> findContact = list.findByFindParam("Vasa");//todo
System.out.println(findContact);
subMenu();
}
break;
case 7: {
System.out.println("Добавление контакта в контакт-лист c консоли:");
list.addToTheContactList(contactAddFromConsole());
list.contactListShow();
subMenu();
}
break;
case 8: {
list.removeByDelParam("Vasa");
list.contactListShow();
subMenu();
}
break;
case 9: {
list.updateByParam("Vasa");
list.contactListShow();
subMenu();
}
break;
}
}
/**
* Подменю для возврата в главное меню по вводу 0
*/
public static void subMenu() {
Scanner sc = new Scanner(System.in);
System.out.println("Возврат в ГЛАВНОЕ МЕНЮ, нажмите \"0\"");
System.out.println("\"0\" - Return to the MAIN MENU");
int subSelect = sc.nextInt();
while (subSelect != 0) {
System.out.println("Incorrect Selection");
subSelect = sc.nextInt();
}
mainMenu();
}
/**
* Валидатор вібора пункта меню
*/
public static String menuValidator(String selection) {
Scanner sc = new Scanner(System.in);
while (!checkSelection(selection)) {
System.out.println("Не правильно введен пункт меню. ВВедите число от 0 до 9. Пример: 7");
selection = sc.nextLine();
}
return selection;
}
/**
* Патерн валидации выбора пункта меню, число 0-9, один символ
*/
public static boolean checkSelection(String selection) {
Pattern p = Pattern.compile("^[0-9]{1}$");
Matcher m = p.matcher(selection);
return m.matches();
}
public static Contact contactAddFromConsole(){
Scanner sc = new Scanner(System.in);
System.out.println("\nДля записи имени используйте символы a-z, A-Z, 0-9, _\n" +
"Длина имени от 3 до 15 символов с учетом пробелов. Пример: Vasa Pyatochkin");
Contact contact = new Contact();
contact.nameInput(sc);
contact.validatorName(contact.getName());
System.out.println("\nДля записи номера используйте цифры 0-9.\n" +
"Длина номера от 7 до 14 символов с учетом пробелов. Допускаются проблелы. Пример: 097 777 77 77");
contact.inputPhoneNamber(sc);
contact.validatorPhone(contact.getPhoneNumber());
return contact;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment