您的位置:首页 > 其它

移动、联通和电信运营商最新号段判断

2014-06-30 00:00 239 查看
/**
* 判断号码是联通,移动,电信中的哪个,
* 在使用本方法前,请先验证号码的合法性 规则:
*
* 中国移动拥有号码段为:139,138,137,136,135,134,147,159,158,157(3G),151,152,150,182(3G),188(3G),187(3G);16个号段
* 中国联通拥有号码段为:130,131,132,145,155,156(3G),186(3G),185(3G);8个号段
* 中国电信拥有号码段为:133,1349,153,189(3G),180(3G);5个号码段
* @param mobile要判断的号码
* @return 返回相应类型:1代表联通;2代表移动;3代表电信
*/
public String getMobileType(String mobile) {

if (mobile.startsWith("0") || mobile.startsWith("+860")) {
mobile = mobile.substring(mobile.indexOf("0") + 1, mobile.length());
}
List chinaUnicom = Arrays.asList(new String[] { "130", "131", "132",
"145","155", "156", "186", "185" });
List chinaMobile1 = Arrays.asList(new String[] { "135", "136", "137",
"138", "139", "147","150", "151", "152", "157", "158", "159", "182","187",
"188" });
List chinaMobile2 = Arrays.asList(new String[] { "1340", "1341",
"1342", "1343", "1344", "1345", "1346", "1347", "1348" });

boolean bolChinaUnicom = (chinaUnicom.contains(mobile.substring(0, 3)));
boolean bolChinaMobile1 = (chinaMobile1
.contains(mobile.substring(0, 3)));
boolean bolChinaMobile2 = (chinaMobile2
.contains(mobile.substring(0, 4)));
if (bolChinaUnicom)
return "1";//联通
if (bolChinaMobile1 || bolChinaMobile2)
return "2"; //移动
return "3"; //其他为电信

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息