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入门到精通教程
查看: 720|回复: 0

判断手机号码归属的程序 java实例

[复制链接]

该用户从未签到

发表于 2011-9-18 15:23:06 | 显示全部楼层 |阅读模式
案例描述:
    使用正则表达式判断一个11位的数字字符串是否是一个手机号码,如果是还要说明是哪个运营商的手机号码。本案例只能证明一个手机号码是否符合真确的规则,无法验证一个手机号码是否真实存在。

import java.io.*;
class MobPhnNumMatch{
/*描述不同公司手机号码规则的正则表达式
  *cmcc-中国移动手机号码规则
  *cucc- 中国联通手机号码规则
  *cnc--中国网通3G手机号码规则*/
static String cmcc="^[1]{1}(([3]{1}[4-9]{1})|([5]{1}[89]{1}))[0-9]{8}$";
static String cucc="^[1]{1}(([3]{1}[0-3]{1})|([5]{1}[3]{1}))[0-9]{8}$";
static String cnc="^[1]{1}[8]{1}[89]{1}[0-9]{8}$";
String mobPhnNum;
public MobPhnNumMatch(String mobPhnNum)
{
this.mobPhnNum=mobPhnNum;
}
public int matchNum()
{
int flag;//存储匹配结果
//判断手机号码是否是11位
if(mobPhnNum.length()==11)
{
   //判断手机号码是否符合中国移动的号码规则
   if(mobPhnNum.matches(cmcc))
   {
    flag=1;
   }
   //判断手机号码是否符合中国联通的号码规则
   else if(mobPhnNum.matches(cucc))
   {
    flag=2;
   }
   //判断手机号码是否符合中国网通的号码规则
   else if(mobPhnNum.matches(cnc))
   {
    flag=3;
   }
   //都不合适
   else{
    flag=4;
   }
}
//不是11位
else {
   flag=5;
}
return flag;
}
//根据返回的匹配结果输出相应的信息
public void match()
{
int flag;
flag=matchNum();
System.out.print(mobPhnNum);
switch(flag){
   case 1:
    System.out.println("使中国移动的手机号码!");
    break;
   case 2:
    System.out.println("使中国联通的手机号码!");
    break;
   case 3:
    System.out.println("使中国网通3G的手机号码!");
    break;
   case 4:
    System.out.println("不是正确的手机号码!");
    break;
   case 5:
    System.out.println("不是11位的手机号码!");
    break;
   default:
}
}
}
//主类
public class RegularMatch{
public static void main(String[] args)
{
   boolean Flag=true;
   while(Flag==true)
   {
    try{
     System.out.print("请输入您要查询的手机号码:");
     BufferedReader pdataIn=new BufferedReader(new InputStreamReader(System.in));
     MobPhnNumMatch MPNM=new MobPhnNumMatch(pdataIn.readLine());
     MPNM.match();
     System.out.println("继续请按Y,退出请按其它键。");
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
     char choiceID=(char)br.read();
     if(choiceID!='Y')
     {
      Flag=false;
      return;
     }
     else if(choiceID=='Y'){
      Flag=true;
     }
    }catch(IOException e){
     e.printStackTrace();
    }
   }
}
}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 07:45 , Processed in 0.365928 second(s), 48 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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