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. ArrayList源码分析(基于JDK1.6)
  2. 顺序栈实现括号匹配的检验(C语言实现)【栈】
  3. 【postgresql初始化失败】initdb: invalid locale settings; check LANG and LC_* environment variables
  4. ubuntu检查端口是否开启_Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息...
  5. mysql交叉连接后生成的记录总数_4.mysql数据库创建,表创建模等模板脚本,mysql_SQL99标准的连接查询(内连接,外连接,满外连接,交叉连接)_MySQL...
  6. 计算机开机自启文件夹,电脑开机自动打开文件夹解决方法
  7. 详解智能建筑消防预警系统设计与实现
  8. xcode自动刷新resource下的文件
  9. win10主题更换_WIN10好用的小软件
  10. Ivy Book List
  11. 计算机制图如何绘制太极图,太极图,如何用PS绘制太极图?
  12. 分销与供应链电子元器件采购需要掌握哪些基础知识?
  13. 知识付费对接微信公众号订阅消息
  14. 基于BP神经网络飞机颠簸预测
  15. 软路由系统, OpenWrt (Lede), Ubuntu server, 爱快, ROS, Pfsense, m0n0wall, OPNsense
  16. mathcad使用小结
  17. 谁更亏?刘强东事件让马云损失了56亿,而刘强东仅损失20亿!
  18. (笔记)关于spit截取表单提交数据区分符号中英文及正则判断
  19. 激光雷达目标检测 (上)
  20. Windows系统装linux双系统,无需U盘

热门文章

  1. 衢州学院的计算机专业是本科还是专科,浙江本科对比:选择衢州学院还是温州大学好?...
  2. IDEA创建Maven项目
  3. 基于EP4CE10F17C8N芯片详解Altera Cyclone系列器件命名规则
  4. Typora (free in Win Linux ) 0.9.86
  5. 在网站页脚添加QQ邮箱的“邮我”功能
  6. 推行国产操作系统的优劣
  7. iview 如何去掉Carousel的指示器
  8. CFS调度器学习总结
  9. pgsql实现json格式转换
  10. DAY10微信小程序项目开发技术总结