Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как изменить (имя, фамилия, номер) в списке контактов, через сканер?

Jesse Young Ученик (91), на голосовании 1 год назад
Пользователь через сканер выбирает контакт из списка, потом выбирает что изменить у контакта (имя, фамилию или номер). Как это реализовать?
Голосование за лучший ответ
Оракул Оракул (62089) 1 год назад
 contacts.get(0).setName("New name");
contacts.get(0).setSurname("New surname");
contacts.get(0).setNumber("New number");
Jesse YoungУченик (91) 1 год назад
А как в этом конкретном случае?
Оракул Оракул (62089) Jesse Young, ну типа как-то так
 ...
Contact contact = contacts.get(edit);
// Выберите изменение
int change = scanner.nextInt();
switch (change) {
    case 1 -> contact.setName("something");
    case 2 -> contact.setSurname("something"); 
    case 3 -> contact.setNumber("something");
} 
Jesse YoungУченик (91) 1 год назад
Оракул Оракул (62089) Jesse Young, добавьте ввод того, что меняете
 scanner.nextLine(); // надо для сброса буфера после ввода чисел
System.out.println("Введите новое значение");
String value = scanner.nextLine();
switch .. {
    case 0 -> contact.setName(value);
    ... и т.д.
} 
Андрей Панарин Искусственный Интеллект (249310) 1 год назад
Вы можете принять на ввод порядковый номер или индекс контакта, а затем по этому индекс достать контакт из списка и вносить в него изменения.
 Scanner sc = new Scanner(System.in);
System.out.print("Введите индекс контакта: ");
int index = sc.nextInt();
Contact contact = contacts.get(index);
// Дальше делаем с переменной contact, что нам нужно
Jesse YoungУченик (91) 1 год назад
А как в этом конкретном случае?
Андрей Панарин Искусственный Интеллект (249310) Я бы добавил в шапку метода edit параметр int index и передавал бы индекс контакта при вызове этого метода. А уже в методе edit вместо get(0) делаем get(index). А вот выбор изменения я бы, наверное, реализовал в методе edit. Потом принимаем ввод нового строкового значения. А дальше switch и в зависимости от выбранного типа изменения подаем новое строковое значение в setName, setSurname или setNumber.
Александр Искусственный Интеллект (301645) 1 год назад
какой ещё сканер?
класс Scanner ?
хорошо пошутил
Похожие вопросы