Java手机号码工具类示例详解(判断运营商、获取归属地)

网友投稿 612 2022-10-26

Java手机号码工具类示例详解(判断运营商、获取归属地)

所需引用Jar包

com.googlecode.libphonenumber

geocoder

2.15

com.googlecode.libphonenumber

libphonenumber

6.3

com.googlecode.libphonenumber

prefixmapper

2.15

com.googlecode.libphonenumber

carrier

1.5

工具类源码

import java.util.Locale;

import com.google.i18n.phonenumbers.PhoneNumberToCarrierMapper;

import com.google.i18n.phonenumbers.PhoneNumberUtil;

import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;

import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;

/**

*

* @ClassName: PhoneUtil

* @Description:手机号码归属地工具类

*/

public class PhoneUtil {

private static PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();

private static PhoneNumberToCarrierMapper carrierMapper = PhoneNumberToCarrierMapper.getInstance();

private static PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();

/**

* 根据国家代码和手机号 判断手机号是否有效

* @param phoneNumber

* @param countryCode

* @return

*/

public static boolean checkPhoneNumber(String phoneNumber, String countryCode){

int ccode = StringUtils.obj2Int(countryCode);

long phone = StringUtils.toLong(phoneNumber);

PhoneNumber pn = new PhoneNumber();

pn.setCountryCode(ccode);

pn.setNationalNumber(phone);

return phoneNumberUtil.isValidNumber(pn);

}

* 根据国家代码和手机号 判断手机运营商

pubtoKiKlic static String getCarrier(String phoneNumber, String countryCode){

//返回结果只有英文,自己转成成中文

String carrierEn = carrierMapper.getNameForNumber(pn, Locale.ENGLISH);

String carrierZh = "";

carrierZh += geocoder.getDescriptionForNumber(pn, Locale.CHINESE);

switch (carrierEn) {

case "China Mobile":

carrierZh += "移动";

break;

case "China Unicom":

carrierZh += "联通";

case "China Telecom":

carrierZh += "电信";

default:

}

return carrierZh;

*

* @Description: 根据国家代码和手机号 手机归属地

* @param @param phoneNumber

* @param @param countryCode

* @param @return 参数

* @throws

public static String getGeo(String phoneNumber, String countryCode){

return geocoder.getDescriptionForNumber(pn, Locale.CHINESE);

* @Title: getPhoneRegionCode

* @Description: 得到手机的归宿地编码

* @return String 返回类型

* @throws

public static String getPhoneRegionCode(String phoneNumber, String countryCode){

String areaName=getGeo(phoneNumber,countryCode);

if(StringUtils.isEmpty(areaName)){

return "";

}

if(areaName.length()<3){

return areaName;

public static void main(String[] args) {

System.out.println(getPhoneRegionCode("18931234689","86"));

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Type-A接口与USB 2.0的区别
下一篇:FPGA程序设计:如何封装AXI_SLAVE接口IP
相关文章

 发表评论

暂时没有评论,来抢沙发吧~