本系统支持的手机号检查如下所示:
/**
* 中国移动,中国联通,中国电信都为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);
}
}
}
}