关于Java代码中的获取手机号所在省市区相关的问题

本文介绍如何利用谷歌的libphonenumber库在Java项目中根据手机号码获取其对应的省市区信息。通过在Maven中引入相关依赖,可以实现对手机号码的有效验证及归属地的精确解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际的项目开发中,可能会遇到根据手机号获取用户的省市区的需求,那么首先就不要慌,有百度的也有谷歌的,下面我把代码写出来。以谷歌的工具为例:

首先在maven中引入谷歌的获取手机号省市区的包:

 

<dependency>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>geocoder</artifactId>
   <version>2.59</version>
</dependency>

<dependency>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>libphonenumber</artifactId>
   <version>8.0.0</version>
</dependency>

<dependency>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>prefixmapper</artifactId>
   <version>2.59</version>
</dependency>
<dependency>
   <groupId>com.googlecode.libphonenumber</groupId>
   <artifactId>carrier</artifactId>
   <version>1.49</version>
</dependency>

这个就是谷歌的所需的包,接下来就是代码段:

public static String getPhoneBelonging(String tel){
    if(!veriyMobile(tel)){
        throw new BaseException(40000,"手机号不符合规范");
    }
    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
    PhoneNumberOfflineGeocoder phoneNumberOfflineGeocoder = PhoneNumberOfflineGeocoder.getInstance();
    //设置中文开头
    String language = "CN";
    Phonenumber.PhoneNumber referencePhoneme = null;

    try {
        referencePhoneme = phoneUtil.parse(tel, language);
    } catch (NumberParseException e) {
        e.printStackTrace();
    }
    //手机号码归属城市 city
    String city= phoneNumberOfflineGeocoder.getDescriptionForNumber(referencePhoneme, Locale.CHINA);
    return city;
}

希望这个工具能够帮到困惑的小伙伴!!!!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值