个人电话簿包含10个人的名字和电话号码。为前5个人指定姓名和电话号码
提示用户输入姓名,如果在列表中找到该姓名,则显示相应的电话号码
如果在列表中找不到该姓名,请提示用户输入电话号码,然后将新姓名和电话号码添加到列表中
继续提示用户输入名称,真到用户输入quit。 数组被删除(包含10个名称)后,不允许用户添加新条目
将文件另存为电话号码.java
注:使用“读取用户输入的数据”。
public static void main(String[] args) {
Person person1 = new Person("赵1", "18710971811");
Person person2 = new Person("钱2", "18710971812");
Person person3 = new Person("孙3", "18710971813");
Person person4 = new Person("李4", "18710971814");
Person person5 = new Person("周5", "18710971815");
List list = new ArrayList<>();
list.add(person1);
list.add(person2);
list.add(person3);
list.add(person4);
list.add(person5);
// list中已经有了前五个人的信息
boolean flag = true;
int count = 0;
while (flag) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名");
String next = scanner.next();
Person matchPerson = list.stream()
.filter(person -> person.getName().equals(next))
.findFirst()
.orElse(null);
if (matchPerson != null) {
System.out.println(matchPerson.getPhone());
} else {
System.out.println("请输入电话号码");
String phone = scanner.next();
Person newPerson = new Person(next, phone);
list.add(newPerson);
}
count++;
if (count == 5) {
flag = false;
}
}
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Person {
private String name;
private String phone;
}
public static void main(String[] args) throws IOException {
Map map = new HashMap();
Map newMap = new HashMap();
while (map.size()<10){
newMap = saveName(newMap);
if(newMap==null){
break;
}
map.putAll(newMap);
}
File file = new File("E:/电话号码.java");
if(file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try (FileWriter fileWriter = new FileWriter("E:/电话号码.java")) {
fileWriter.append(map.toString());
}
}
public static Map saveName(Map map){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第"+(map.size()+1)+"个名称:");
String name = sc.nextLine();
if(map.containsKey(name)){
System.out.println("该用户电话号码为:"+map.get(name));
return map;
}
if(name.equals("quit")){
return null;
}
System.out.println("请输入电话号码:");
String phone = sc.nextLine();
if(phone.equals("quit")){
return null;
}
map.put(name,phone);
return map;
}