博主:👍不许代码码上红
欢迎:🐋点赞、收藏、关注、评论。
格言: 大鹏一日同风起,扶摇直上九万里。文章目录
- 问题提出:如何判断电话号码属于哪个运营商?
- 一、代码设计思路
- 二、完整源代码
- 二、运行截图
问题提出:如何判断电话号码属于哪个运营商?
可以根据手机号码前3位来快速判断一个手机号码所属的运营商。
我国手机号码有11位数,前3位是网络识别号(运营商号码段)、4-7位是地区编码(HLR归属位置寄存器)、8-11位是用户号码(随机分配),因此我们可以根据手号码前3位来快速判断手机号码运营商。
目前我国三大电信运营商号码段分别如下:
中国电信:133,153,177,180,181,189;
中国联通:130,131,132,155,156,185,186,145,176;
中国电信:134,135,136,137,138,139,147,150,151,152,157,158,159,178,182,183,184,187,188。
一、代码设计思路
trim()函数
功能:trim() 方法用于删除字符串的头尾空白符。
startsWith()函数
功能:startsWith() 方法用于检测字符串是否以指定的前缀开始。
substring() 函数
功能:substring() 方法返回字符串的子字符串。
1.1 定义四个字符串
private static String CMCC = "移动"; //移动
private static String UNICOM = "联通"; //联通
private static String TELECOM = "电信"; //电信
private static String UNKNWON = "未知"; //未知
1.2 判断号码长度是否合法
if (phoneNum == null || phoneNum.length() < 11) {
return UNKNWON;
if (phoneNum.length() != 11) {
return UNKNWON;
}
1.3 根据前三个字符判断返回相对应的值
if (head3.equals("135") || head3.equals("136") || head3.equals("137")
|| head3.equals("138") || head3.equals("139")
|| head3.equals("150") || head3.equals("151")
|| head3.equals("152") || head3.equals("157")
|| head3.equals("158") || head3.equals("159")
|| head3.equals("182") || head3.equals("187")
|| head3.equals("188") || head3.equals("147")) {
return CMCC;
}
二、完整源代码
package test;
public class TestYYS {
private static String CMCC = "移动";//移动
private static String UNICOM = "联通"; //联通
private static String TELECOM = "电信"; //电信
private static String UNKNWON = "未知"; //未知
private static boolean isNumeric(String msg) {
for (int i = 0; i < msg.length(); i++) {
if (java.lang.Character.isDigit(msg.charAt(i))) {
continue;
}
return false;
}
return true;
}
public static String getOperater(String phoneNum) {
String head3 = "";
String head4 = "";
phoneNum = phoneNum.trim();
if (phoneNum == null || phoneNum.length() < 11) {
return UNKNWON;
} else {
if (phoneNum.startsWith("+")) {
phoneNum = phoneNum.substring(1);
}
if (phoneNum.startsWith("86")) {
phoneNum = phoneNum.substring(2);
}
}
if (phoneNum.length() != 11) {
return UNKNWON;
}
if (!isNumeric(phoneNum)) {
return UNKNWON;
}
head3 = phoneNum.substring(0, 3);
head4 = phoneNum.substring(0, 4);
if (head3.equals("135") || head3.equals("136") || head3.equals("137")
|| head3.equals("138") || head3.equals("139")
|| head3.equals("150") || head3.equals("151")
|| head3.equals("152") || head3.equals("157")
|| head3.equals("158") || head3.equals("159")
|| head3.equals("182") || head3.equals("187")
|| head3.equals("188") || head3.equals("147")) {
return CMCC;
}
if (head4.equals("1340") || head4.equals("1341")
|| head4.equals("1342") || head4.equals("1343")
|| head4.equals("1344") || head4.equals("1345")
|| head4.equals("1346") || head4.equals("1347")
|| head4.equals("1348")) {
return CMCC;
}
if (head3.equals("130") || head3.equals("131") || head3.equals("132")
|| head3.equals("145") || head3.equals("155")
|| head3.equals("156") || head3.equals("185")
|| head3.equals("186")) {
return UNICOM;
}
if (head3.equals("133") || head3.equals("153") || head3.equals("180")
|| head3.equals("189")) {
return TELECOM;
}
if (head4.equals("1349")) {
return TELECOM;
}
return UNKNWON;
}
public static void main(String[] args) {
System.out.println(TestYYS.getOperater("152********"));
}
}