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

 更新时间:2022年02月28日 11:12:05   作者:安和桥@write_boy  
这篇文章主要介绍了Java手机号码工具类示例详解,通过手机号码来判断运营商获取归属地,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

所需引用Jar包

<dependency>
	<groupId>com.googlecode.libphonenumber</groupId>
	<artifactId>geocoder</artifactId>
	<version>2.15</version>
</dependency>
		
<dependency>
	<groupId>com.googlecode.libphonenumber</groupId>
	<artifactId>libphonenumber</artifactId>
	<version>6.3</version>
</dependency>
		
<dependency>
	<groupId>com.googlecode.libphonenumber</groupId>
	<artifactId>prefixmapper</artifactId>
	<version>2.15</version>
</dependency>
<dependency>
	<groupId>com.googlecode.libphonenumber</groupId>
	<artifactId>carrier</artifactId>
	<version>1.5</version>
</dependency>

工具类源码

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);
    }
     * 根据国家代码和手机号  判断手机运营商
    public 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"));
		
}

到此这篇关于Java手机号码工具类(判断运营商、获取归属地)的文章就介绍到这了,更多相关Java手机号码工具类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现单链表的操作

    Java实现单链表的操作

    这篇文章主要为大家详细介绍了Java实现单链表的操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Java源码解析之接口Collection

    Java源码解析之接口Collection

    Collection是List、Queue和set的超集,它直接继承于Iterable,也就是说所有的Collection集合类都支持foreach循环.除此之外呢,Collection也是面向接口编程的典范,它可以在多种实现类间转换,这就是面向对象编程的厉害之处.接下来就随着小编一起去看看吧,需要的朋友可以参考下
    2021-05-05
  • SpringBoot连接Nacos集群报400问题及完美解决方法

    SpringBoot连接Nacos集群报400问题及完美解决方法

    这篇文章主要介绍了解决SpringBoot连接Nacos集群报400问题 ,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • SpringBoot加载bean的八种方式总结

    SpringBoot加载bean的八种方式总结

    springboot难免要用到bean,但这些bean如何导入,对于初学者时间头疼的事,下面这篇文章主要给大家介绍了关于SpringBoot加载bean的八种方式,需要的朋友可以参考下
    2022-10-10
  • SpringSecurity OAtu2+JWT实现微服务版本的单点登录的示例

    SpringSecurity OAtu2+JWT实现微服务版本的单点登录的示例

    本文主要介绍了SpringSecurity OAtu2+JWT实现微服务版本的单点登录的示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Spring boot 跳转到jsp页面的实现方法

    Spring boot 跳转到jsp页面的实现方法

    本篇文章主要介绍了Spring boot 跳转到jsp页面的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 通过实例解析Java List正确使用方法

    通过实例解析Java List正确使用方法

    这篇文章主要介绍了通过实例解析Java List正确使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • java中this的n种使用方法

    java中this的n种使用方法

    this可能是几乎所有有一点面向对象思想的语言都会引用到的变量,this有多少种用法。下面小编给大家带来了java中this的n种使用方法,感兴趣的朋友一起看看吧
    2018-08-08
  • java基于odbc连接oracle的实现方法

    java基于odbc连接oracle的实现方法

    这篇文章主要介绍了java基于odbc连接oracle的实现方法,结合实例形式分析了连接操作的具体步骤与相关实现技巧,需要的朋友可以参考下
    2016-09-09
  • MyBatis select标签的使用示例

    MyBatis select标签的使用示例

    MyBatis中,select 标签是最常用也是功能最强大的 SQL 语言,用于执行查询操作,本文就来介绍了MyBatis select标签的使用示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10

最新评论