Created
August 17, 2016 18:55
-
-
Save YanchevskayaAnna/7637e23cbd69ec1360bd5430c3a1d0a0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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