电话号码的正则判断(电话、正则的使用)

@电话号码、正则判断

电话号码的正则判断

##题目:写一个输入输出程序,输入手机号码,进行正则判断,如果符合则输出该电话号码,如果不符合则输出
“电话号码格式有误,请重新输入!”注意,直到输入正确格式的电话号码才可以结束程序。

##代码:

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @ClassName 正则判断电话号码
 * @Description TODO
 * @Author 今夕河西
 * @Date 2022/7/3 22:40
 * @Version 1.0
 **/
public class Phone_Judge {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入电话号码:");
        String phone_number = scanner.next();
        while(!IsMobilphone(phone_number)) {
            System.out.print("电话号码格式有误,请重新输入:");
            phone_number = scanner.next();
        }
        System.out.println(phone_number);
    }

    //判断手机号是否符合规定
    private static boolean IsMobilphone(String num) {
        //regex1解释:
        // 0\d{2,3}:表示0开头的三位或四位数字
        //[-]?:表示有一个-或者零个-
        //\d{7,8}:表示七位或八位数字:和上面的三位和四位对应:3-8;4-7
        // |:表示或者
        //\s?:表示空格
        String regex1="0\\d{2,3}[-]?\\d{7,8}|0\\d{2,3}\\s?\\d{7,8}";

        //regex2比较常见,不解释了
        String regex2="1[3-9][0-9]\\d{8}";
        //注:regex1和regex2分别代表了两种电话号码的格式

        //定义Pattern对象
        Pattern pattern1=Pattern.compile(regex1);
        Pattern pattern2=Pattern.compile(regex2);

        //匹配对象
        Matcher matcher1=pattern1.matcher(num);
        Matcher matcher2=pattern2.matcher(num);

        //bool函数判断输入是否正确
        boolean boo1=matcher1.matches();    //尝试将整个区域与模式匹配。
        boolean boo2=matcher2.matches();
        if (boo1) {     //符合第一种电话格式
            return true;
        } else if (boo2) {  //符合第二种电话格式
            return true;
        } else {        //都不符合
            return false;
        }
    }
}

运行结果:

电话号码格式正确,可直接输出
格式输入错误需要重新输入

代码解释:在改代码中,针对两种电话号码做出了正则分析,第一种是移动电话,较为常见,在这里需要注意的就是了解到现实生活中电话号码的正确格式;第二种是座机电话,这个看似复杂一点,但也都是简单的正则进行组合,多看两遍应该明白。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值