java中,有一个通讯录,里面有姓名,电话,地址。现在需要通过姓名和电话号码查询,显示全部信息,这样的代码怎么写呀
下面是我的思路,(不知道是否满足你的要求):
首先定义一个通讯录类,字段包含姓名、电话、地址,然后构造其get方法(用于访问字段)以及toString方法(用于打印对象的信息),以及构造方法(用于创建对象);
然后在main方法,创建并初始化一个通讯录数组(用于测试查找),再从输入获取一个姓名,然后遍历数组,看通讯录数组是否存在此姓名,如果存在则打印其信息,如果不存在则提示没找到;同理再从输入获取一个手机号码,遍历数组查找,找打就打印其信息,没有找到就提示没找到。
参考资料:
java错误:编译出错,提示 The literal XXXXXXXXXXXXXXXX of type int is out of range_I_belong_to_jesus的博客-CSDN博客
java如何创建对象数组-java基础-Python学习网
下面是一个实现,供参考:
import java.util.Scanner;
public class MailList {
public String name; //姓名
public long phone; //电话
public String address; //地址
//参考资料:
//https://blog.csdn.net/fangfanglovezhou/article/details/111294994
//https://m.py.cn/java/jichu/28875.html
public static void main(String[] args) {
// TODO Auto-generated method stub
//初始化包含三个通讯录的数组,用于下面查询测试
MailList[] ms = new MailList[3] ;
ms[0]= new MailList("张三",(long)15623657995L,"北京朝阳区");
ms[1]= new MailList("李四",(long)13600215489L,"广州天河区");
ms[2]= new MailList("小花",(long)17698581452L,"深圳三和大市场");
Scanner sc = new Scanner(System.in);
System.out.print("请输入要查询的姓名:");
String name = sc.next(); //获取一个姓名要与查询其信息
int find=0;
for(int i=0;i<ms.length;i++) { //遍历通讯录数组,如果找到指定名字,则打印其信息
if(ms[i].getName().equals(name)) {
System.out.println(ms[i].toString());
find=1; //标志已找到,以区别于遍历整个数组都没找到的情况
break;
}
}
if(find==0) { //如果没有知道,打印提示信息
System.out.println("没有找到姓名为\""+name+"\"的人员信息!");
}
find=0;
System.out.print("请输入要查询的手机号码:");
long phone = sc.nextLong(); //获取一个电话号码
for(int i=0;i<ms.length;i++) { //遍历数组,以查找数组内是否存在这个电话号码,如果找到就打印其信息
if(ms[i].getPhone()==phone) {
System.out.println(ms[i].toString());
find=1; //找到,标志置1
break;
}
}
if(find==0) { //如果没有找到
System.out.println("没有找到手机号码为"+phone+"的人员信息!");
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getPhone() {
return phone;
}
public void setPhone(long phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public MailList() {
super();
}
public MailList(String name, long phone, String address) {
super();
this.name = name;
this.phone = phone;
this.address = address;
}
@Override
public String toString() {
return "MailList [name=" + name + ", phone=" + phone + ", address=" + address + "]";
}
}