Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 434|回复: 0

[正则表达式学习]判断手机号码归属的程序

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-28 23:58:49 | 显示全部楼层 |阅读模式
    案例描述:
         使用正则表达式判断一个11位的数字字符串是否是一个手机号码,如果是还要说明是哪个运营商的手机号码。本案例只能证明一个手机号码是否符合真确的规则,无法验证一个手机号码是否真实存在。
    1. import java.io.*;
    2. class MobPhnNumMatch{
    3. /*描述不同公司手机号码规则的正则表达式
    4.   *cmcc-中国移动手机号码规则
    5.   *cucc- 中国联通手机号码规则
    6.   *cnc--中国网通3G手机号码规则*/
    7. static String cmcc="^[1]{1}(([3]{1}[4-9]{1})|([5]{1}[89]{1}))[0-9]{8}$";
    8. static String cucc="^[1]{1}(([3]{1}[0-3]{1})|([5]{1}[3]{1}))[0-9]{8}$";
    9. static String cnc="^[1]{1}[8]{1}[89]{1}[0-9]{8}$";
    10. String mobPhnNum;
    11. public MobPhnNumMatch(String mobPhnNum)
    12. {
    13. this.mobPhnNum=mobPhnNum;
    14. }
    15. public int matchNum()
    16. {
    17. int flag;//存储匹配结果
    18. //判断手机号码是否是11位
    19. if(mobPhnNum.length()==11)
    20. {
    21.    //判断手机号码是否符合中国移动的号码规则
    22.    if(mobPhnNum.matches(cmcc))
    23.    {
    24.     flag=1;
    25.    }
    26.    //判断手机号码是否符合中国联通的号码规则
    27.    else if(mobPhnNum.matches(cucc))
    28.    {
    29.     flag=2;
    30.    }
    31.    //判断手机号码是否符合中国网通的号码规则
    32.    else if(mobPhnNum.matches(cnc))
    33.    {
    34.     flag=3;
    35.    }
    36.    //都不合适
    37.    else{
    38.     flag=4;
    39.    }
    40. }
    41. //不是11位
    42. else {
    43.    flag=5;
    44. }
    45. return flag;
    46. }
    47. //根据返回的匹配结果输出相应的信息
    48. public void match()
    49. {
    50. int flag;
    51. flag=matchNum();
    52. System.out.print(mobPhnNum);
    53. switch(flag){
    54.    case 1:
    55.     System.out.println("使中国移动的手机号码!");
    56.     break;
    57.    case 2:
    58.     System.out.println("使中国联通的手机号码!");
    59.     break;
    60.    case 3:
    61.     System.out.println("使中国网通3G的手机号码!");
    62.     break;
    63.    case 4:
    64.     System.out.println("不是正确的手机号码!");
    65.     break;
    66.    case 5:
    67.     System.out.println("不是11位的手机号码!");
    68.     break;
    69.    default:
    70. }
    71. }
    72. }
    73. //主类
    74. public class RegularMatch{
    75. public static void main(String[] args)
    76. {
    77.    boolean Flag=true;
    78.    while(Flag==true)
    79.    {
    80.     try{
    81.      System.out.print("请输入您要查询的手机号码:");
    82.      BufferedReader pdataIn=new BufferedReader(new InputStreamReader(System.in));
    83.      MobPhnNumMatch MPNM=new MobPhnNumMatch(pdataIn.readLine());
    84.      MPNM.match();
    85.      System.out.println("继续请按Y,退出请按其它键。");
    86.      BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    87.      char choiceID=(char)br.read();
    88.      if(choiceID!="Y")
    89.      {
    90.       Flag=false;
    91.       return;
    92.      }
    93.      else if(choiceID=="Y"){
    94.       Flag=true;
    95.      }
    96.     }catch(IOException e){
    97.      e.printStackTrace();
    98.     }
    99.    }
    100. }
    101. }
    复制代码


       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/10/28/235848781.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-26 01:27 , Processed in 0.346697 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表