我正在尝试用 Java 编写一个程序,允许用户修改地址簿。我已经编写了创建 AddressBook 的代码以及允许对其进行修改的函数:
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
,但只能在程序提示输入时才能使其工作,例如“键入要添加的条目:”
。在没有程序提示输入的情况下解决此问题的最佳方法是什么?
最佳答案
使用此方法将退出条件放入 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”
时,该程序退出。
关于Java:如何连续扫描输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213505/