m0_71679591 2022-06-07 20:44 采纳率: 0%
浏览 38

java中通过姓名和电话号码查询通讯录信息的代码怎么写

java中,有一个通讯录,里面有姓名,电话,地址。现在需要通过姓名和电话号码查询,显示全部信息,这样的代码怎么写呀

  • 写回答

1条回答 默认 最新

  • a5156520 2022-06-08 12:00
    关注

    下面是我的思路,(不知道是否满足你的要求):
    首先定义一个通讯录类,字段包含姓名、电话、地址,然后构造其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 + "]";
        }
        
        
        
        
    }
    

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月7日