libphonenumber是一个Google开发的Common Java类库用于解析,格式化,存储和校验国际电话号码。适合用于智能手机上,同时还提供一个JavaScript移植。

举一个例子

package com.lei.util;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;
import com.okcoin.util.StringUtil;
/**代码示例StringUtil 为String工具类,并未提供,可执行更换。可以使用String 原生函数替换
*/
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 = StringUtil.toInteger(countryCode);long phone = StringUtil.toLong(phoneNumber, 0L);PhoneNumber pn = new PhoneNumber();pn.setCountryCode(ccode);pn.setNationalNumber(phone);return phoneNumberUtil.isValidNumber(pn);}/*** 根据国家代码和手机号  判断手机运营商* @param phoneNumber* @param countryCode* @return*/public static String getCarrier(String phoneNumber, String countryCode){int ccode = StringUtil.toInteger(countryCode);long phone = StringUtil.toLong(phoneNumber, 0L);PhoneNumber pn = new PhoneNumber();pn.setCountryCode(ccode);pn.setNationalNumber(phone);//返回结果只有英文,自己转成成中文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 += "联通";break;case "China Telecom":carrierZh += "电信";break;default:break;}return carrierZh;}/*** * @Description: 根据国家代码和手机号  手机归属地* @date 2015-7-13 上午11:33:18* @param @param phoneNumber* @param @param countryCode* @param @return    参数* @throws*/public static String getGeo(String phoneNumber, String countryCode){int ccode = StringUtil.toInteger(countryCode);long phone = StringUtil.toLong(phoneNumber, 0L);PhoneNumber pn = new PhoneNumber();pn.setCountryCode(ccode);pn.setNationalNumber(phone);return geocoder.getDescriptionForNumber(pn, Locale.CHINESE);}public static void main(String[] args) {System.out.println(PhoneUtil.getCarrier("159655555","86"));}}

相关资料
GitHub 地址:https://github.com/googlei18n/libphonenumber

MAVEN 地址<dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>libphonenumber</artifactId><version>7.0</version></dependency><dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>carrier</artifactId><version>1.11</version></dependency><dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>geocoder</artifactId><version>2.12</version></dependency>

手机号归属地 libphonenumber相关推荐

  1. go语言判断手机号归属地

    简言 1. 网上搜到了很多查询手机号归属地的,要么不是go语言版的,要么复杂难用,笔者推荐的这个很简单 2. 这个第三方库没有利用其它url之类,原理是把全国各地的手机号分类保存到一个文件(phone ...

  2. 采集练习(九) php 获得手机号归属地

    下午在群里看到朋友要查询手机号归属地,于是就稍微看了一下.发现 手机号归属地查询 基本上都是由 手机在线 提供的 .各大网站都拿了这个公司的接口,于是我也想看看怎么获得我需要的信息,手机在线没有免费的 ...

  3. 网易有道IP,身份证号, 手机号归属地API查询接口

    网易有道IP,身份证号, 手机号归属地API查询接口 http://www.youdao.com/smartresult-xml/search.s?type=ip&q=ip地址 GET后返回X ...

  4. java手机号分割_java 获取手机号归属地

    所需pom依赖: com.googlecode.libphonenumber libphonenumber 8.0.0 com.googlecode.libphonenumber geocoder 2 ...

  5. 苹果手机来电归属地_工信部:手机号归属地不会取消、否则增大诈骗风险-工信部,手机号,归属地,诈骗 ——快科技(驱动之家旗下媒体)-...

    提速降费.取消漫游费.取消流量当月清零.流量转赠.携号转网.异地销户.一人多卡--这几年,我国的移动网络建设成效显著,各种便民政策也不断出炉. 近日有网友提议,是否可以参照取消高速公路省界收费站的做法 ...

  6. Java判断手机号归属地

    这篇文章主要介绍了Java获取手机号码归属地的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 封装好的工具类如下: publ ...

  7. 手机号归属地 mysql脚本_示例演示手机号归属地查询功能

    示例演示手机号归属地查询功能(调用webservice接口) 1,新建java项目,创建包 2,点击项目名称创建web service->web service client 3,选择JAX-W ...

  8. Android获取手机号归属地

    工程目录: 添加权限: <uses-permission android:name="android.permission.INTERNET"/> Activity p ...

  9. 微信小程序实现:输入手机号点击按钮查询手机号归属地

    <!--wxml--> <!--wxml--> <view ><input bindinput="listenPhoneInput" ty ...

最新文章

  1. android使用webview时按后退退出的问题
  2. Hibernate 获取某个表全部记录时 奇怪现象 (重复出现某个记录)
  3. matplotlib画图
  4. 千万级高德服务单元化方案和架构实践
  5. Centos7.5.1804永久生效修改主机名
  6. 向spark standalone集群提交任务
  7. Asp.net生成工作流、审批流的解决方案(asp.net workflow svg)
  8. EIGRP Metric计算
  9. Dvbbs 7.1论坛鼠标指针修改方法
  10. 有谁还记得“开源”已经20年了!
  11. 酷q显示无法连接到服务器,本机酷Q与服务器nonebot建立通信
  12. 计算机组装故障排除方法,计算机的硬件组装及故障排除
  13. vue 2.0项目中使用tinymce富文本框遇到的问题
  14. 大学生找工作如何做自我介绍?如何做好自我介绍?
  15. 不用深厚的数学功底也不用深厚的金融知识,用python也能炒股?
  16. 苹果手机小圆圈怎么设置_敬业签苹果手机版软件小账本怎么设置密码?
  17. 副主任医师计算机英语,医院职称的英语叫法
  18. upnp 二级路由_下载宝作为二级路由折腾记-小白篇 - Padavan - 恩山无线论坛 - Powered by Discuz!...
  19. esxi突然启动不起来了!显示:Error loading /sb.v00
  20. 10g gtx 光纤通信测试_S03-CH05_UDP 万兆光通信

热门文章

  1. android 怎么封装方法,开发那点事(九)安卓开发,封装常用方法,工作用
  2. 钉钉网页版怎样适用于企业的个性化发展
  3. TabLayout 设置指示器宽度问题
  4. IPHONE绑定武大邮箱的一些坑
  5. 新道格XDG1400磁敏测速传感器的详细介绍
  6. 本科毕业5年后入职985高校担任博导,这位小姐姐太强了!
  7. Vue官方文档梳理-全局API
  8. 天秀,手机也可以写Python代码了,还支持Numpy,Pandas等库的安装!
  9. 2061:【例1.2】梯形面积
  10. 引领边吃边逛新时尚 9月19龙德广场B1“潮人街区”正式开街迎客