2015-01-29 2 views
1

Я пытаюсь написать программу на Java, которая позволяет пользователю изменять адресную книгу. Я написал код, который создает AddressBook и функции, которые позволяют ему быть модифицирована:Java: Как я могу непрерывно отсканировать вход?

public class AddressBookEntry 
{ 
    private String name, phone, email; 
    public AddressBookEntry(String name, String phone, String email) 
    { 
     this.name = name; 
     this.phone = phone; 
     this.email = email; 
    } 
    public String getName() 
    { 
     return name; 
    } 
    public String getPhone() 
    { 
     return phone; 
    } 
    public String getEmail() 
    { 
     return email; 
    } 
} 

и

import java.util.ArrayList; 

public class AddressBook 
{ 
    private ArrayList<AddressBookEntry> book = new ArrayList<AddressBookEntry>(); 
    public AddressBook(String bookname) 
    { 

    } 
    public void addEntry(String name, String phone, String email) 
    { 
     book.add(new AddressBookEntry(name, phone, email)); 
    } 
    public AddressBookEntry Search(String searchkey) 
    { 
     for (AddressBookEntry entry: book) 
     { 
      if (entry.getName() == searchkey) 
       { 
        return entry; 
       } 
     } 
    return null; 
    } 
    public void removeEntry(String searchkey) 
    { 
     AddressBookEntry removeentry = Search(searchkey); 
     book.remove(removeentry); 
    } 
} 

Я сейчас пытаюсь написать еще один класс, который использует пользовательский ввод для выполнения выше функции. Мне нужно постоянно проверять ввод.

Я пробовал использовать Scanner, но может заставить это работать, когда программа запрашивает ввод, например. "Type an entry to add: ". Каков наилучший способ решения этой проблемы без запроса программы для ввода?

+0

Возможно, это на ваш вопрос: http://stackoverflow.com/questions/12396765/continuous-input-commands –

+0

'Я пробовал использовать Scanner, но могу заставить его работать только тогда, когда программа запрашивает ввод, например' then вы сделали это неправильно, и поскольку вы не включили этот код, мы не можем помочь вам исправить это. Вы можете обновить свой вопрос, если хотите. – Tom

ответ

0

Используйте это положить в состоянии while Ваш выход:

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); 

while (...) { 
    System.out.print("Type an entry to add: "); 
    String input = bufferedReader.readLine(); 
    ... 
} 

Теперь у вас есть в input строку, введенную пользователем.

Пример:

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); 

while (true) { 
    System.out.print("Type an entry to add: "); 
    String input = bufferedReader.readLine(); 
    if (input.equals("exit")) 
     break; 
    ... 
} 

Эта программа выхода, когда тип пользователя "exit".

Смежные вопросы