手机号格式检查系统(Java)

本系统支持的手机号检查如下所示:
/**
* 中国移动,中国联通,中国电信都为11位的手机号
* 中国"移动"前三位:
* 135、136、137、138、139、147、150、151、152、157、
* 158、159、172、178、182、183、184、187、188、195、197、198
*
* 中国"联通"前三位:
* 130、131、132、145、155、156、166、175、176、185、186、196
*
* 中国"电信"前三位:
* 133、149、153 、180 、181 、189、173、177、190、191、193、199
*
* 座机号为1-7或8位
*
*公共服务电话通常为3-5位如下所示:
* 110报警电话,120医疗急救电话,119消防火警电话,122交通事故电话
* 12315消费者投诉电话
* 10011 中国联通话费查询电话
* 10086 中国移动话费查询电话
* */

 

手机号类 

//手机号
public class Phone {
    //手机号
    private String phone;
    //手机号格式
    private String format;

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getFormat() {
        return format;
    }

    public void setFormat(String format) {
        this.format = format;
    }
}

实现手机号格式检测的类

import java.util.ArrayList;

//检测手机号格式
public class testFormat {
    //实现检测手机号格式的方法
    public void formatWay(ArrayList<Phone> phone) {
        //中国联通,电信,移动的判断
        for (int i = 0; i < phone.size(); i++) {
            Phone p = phone.get(i);
            String str = p.getPhone();
            if (str.length() == 11) {
                if (str.startsWith("130") || str.startsWith("131") || str.startsWith("132") || str.startsWith("145") ||
                        str.startsWith("155") || str.startsWith("156") || str.startsWith("166") || str.startsWith("175") ||
                        str.startsWith("176") || str.startsWith("185") || str.startsWith("186") || str.startsWith("196")) {
                    //将数据存入手机号集合中
                    p.setFormat("中国联通");
                } else if (str.startsWith("133") || str.startsWith("149") || str.startsWith("153") || str.startsWith("180") ||
                        str.startsWith("181") || str.startsWith("189") || str.startsWith("173") || str.startsWith("177") ||
                        str.startsWith("190") || str.startsWith("191") || str.startsWith("193") || str.startsWith("199")) {
                    //将数据存入集合中
                    p.setFormat("中国电信");
                } else if (str.startsWith("135") || str.startsWith("136") || str.startsWith("137") || str.startsWith("138") ||
                        str.startsWith("139") || str.startsWith("147") || str.startsWith("150") || str.startsWith("151") ||
                        str.startsWith("152") || str.startsWith("157") || str.startsWith("158") || str.startsWith("159") ||
                        str.startsWith("172") || str.startsWith("178") || str.startsWith("182") || str.startsWith("183") ||
                        str.startsWith("184") || str.startsWith("187") || str.startsWith("188") || str.startsWith("195") ||
                        str.startsWith("197") || str.startsWith("198")) {
                    //将数据存入集合中
                    p.setFormat("中国移动");
                } else {
                    p.setFormat("错误的11位手机号或不是本系统支持查询的手机号格式");
                }
            }
            //座机号
            else if (str.length() == 7 || str.length() == 8) {
                p.setFormat("座机号");
            }
            //紧急电话
            else if (str.length() == 3) {
                if (str.equals("110")) {
                    p.setFormat("报警电话");
                } else if (str.equals("120")) {
                    p.setFormat("医疗急救电话");
                } else if (str.equals("122")) {
                    p.setFormat("交通事故电话");
                } else if (str.equals("119")) {
                    p.setFormat("消防火警电话");
                }else{
                    p.setFormat("错误的3位手机号或不是本系统支持查询的手机号格式");
                }
            }
            else if (str.length() == 5) {
                if (str.equals("12315")) {
                    p.setFormat("消费者投诉电话");
                } else if (str.equals("10011")) {
                    p.setFormat("中国联通话费查询电话");
                } else if (str.equals("10086")) {
                    p.setFormat("中国移动话费查询电话");
                }else{
                    p.setFormat("错误的5位手机号或不是本系统支持查询的手机号格式");
                }
            }
            else {
                p.setFormat("错误的手机号或不是本系统支持查询的手机号格式");
            }
        }
    }
}

主界面实现

import java.util.ArrayList;
import java.util.Scanner;

//手机号格式检验系统
public class textMain {
    public static void main(String[] args) {
        //创建扫描器,接收用户输入
        Scanner sc = new Scanner(System.in);

        //定义集合存储手机号
        ArrayList<Phone> phone = new ArrayList<>();

        //定义一个接收用户输入选择的变量
        int choice = 0;

        //构建该系统进入的主页面
        System.out.println("----------欢迎进入手机号码格式查询系统----------");
        while(true) {
            System.out.println("1.输入手机号");
            System.out.println("2.查看所有手机号格式");
            System.out.println("3.退出该系统");
            System.out.println("请输入上方的序号(按enter键确认)->");
            //判断输入的指令是否有误
            while(true) {
                choice = sc.nextInt();
                if(choice != 1 && choice != 2 && choice != 3){
                    System.out.println("对不起,指令输入有误,请重新输入:");
                }else{
                    break;
                }
            }
            //执行输入的指令执行相应的功能
            switch(choice) {
                case 1:
                    System.out.println("----------欢迎进入输入手机号功能----------");
                    System.out.println("请输入你的手机号(按enter键确认)->");
                    //将输入的手机号存入手机号集合中
                    Phone p = new Phone();
                    p.setPhone(sc.next());
                    phone.add(p);
                    break;
                case 2:
                    System.out.println("----------欢迎进入查看所有手机号格式功能----------");
                    if(phone.size() == 0){
                        System.out.println("无手机号可查,请添加手机号后再查!\n");
                        break;
                    }else {
                        //将手机号放入检查格式的方法中检查
                        new testFormat().formatWay(phone);
                        System.out.println("手机号\t\t\t\t\t手机号格式");
                        for(int i = 0;i < phone.size(); i++){
                            Phone pp = phone.get(i);
                            System.out.println(pp.getPhone()+"\t\t\t\t\t"+pp.getFormat());
                        }
                        System.out.println();
                        break;
                    }
                case 3:
                    System.out.println("系统正在退出中......");
                    System.out.println("\n系统已退出,欢迎下次光临!");
                    System.exit(0);
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T何必当初

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值