libphonenumber是一个Google开发的Common Java类库用于解析,格式化,存储和校验国际电话号码;

缺点是太新的号码无法正确识别

https://github.com/googlei18n/libphonenumber

package com.base.phone;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;
/**代码示例
*/
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, Integer countryCode){long phone = Long.parseLong(phoneNumber);PhoneNumber pn = new PhoneNumber();pn.setCountryCode(countryCode);pn.setNationalNumber(phone);return phoneNumberUtil.isValidNumber(pn);}/*** 根据国家代码和手机号  判断手机运营商* @date 2017-4-26 上午11:30:18* @param phoneNumber* @param countryCode* @return*/public static String getCarrier(String phoneNumber, Integer countryCode){long phone = Long.parseLong(phoneNumber);PhoneNumber pn = new PhoneNumber();pn.setCountryCode(countryCode);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 2017-4-26 上午11:33:18* @param phoneNumber* @param countryCode* @return    参数*/public static String getGeo(String phoneNumber, Integer countryCode){long phone = Long.parseLong(phoneNumber);PhoneNumber pn = new PhoneNumber();pn.setCountryCode(countryCode);pn.setNationalNumber(phone);return geocoder.getDescriptionForNumber(pn, Locale.CHINESE);}public static void main(String[] args) {System.out.println(PhoneUtil.getCarrier("159657755",86));}}
        <dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>geocoder</artifactId><version>2.82</version></dependency><dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>libphonenumber</artifactId><version>8.8.5</version></dependency><dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>prefixmapper</artifactId><version>2.82</version></dependency><dependency><groupId>com.googlecode.libphonenumber</groupId><artifactId>carrier</artifactId><version>1.72</version></dependency>

利用com.googlecode.libphonenumber解析手机号归属地相关推荐

  1. php解析手机号 归属地,PHP通过API获取手机号码归属地,api手机号码_PHP教程

    PHP通过API获取手机号码归属地,api手机号码 该API接口自 2011年 SAE平台上线稳定运行至今,增加了17号段的支持,欢迎各种采集注限制 并发10 详细使用说明 接口地址:http://a ...

  2. php解析手机号 归属地,一个非常好的php实现手机号归属地查询接口类

    前一阵子看到了一个非常好的php手机归属地查询的类,写的很精简,查询也很精确!大致代码是这样的: header("Content-type:text/html;charset=utf-8& ...

  3. 手机号归属地 libphonenumber

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

  4. 使用谷歌libphonenumber获取号码归属地

    libphonenumber是用于解析.格式化.存储和校验电话号码的Java.C++或JavaScript类库.2010年,libphonenumber的Java实现首次以开源形式发布.在2014年, ...

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

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

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

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

  7. 使用libphonenumber格式化手机号以及归属地查询

    使用libphonenumber格式化手机号以及归属地查询 问题: 需要根据用户输入的手机号 ,格式化 输出 对应的国际标准手机号格式.比如:输入:18666666666 ==> +86 186 ...

  8. Java判断手机号归属地

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

  9. Java下利用Jackson进行JSON解析和序列化

    Java下利用Jackson进行JSON解析和序列化 转载于:https://www.cnblogs.com/jing1617/p/7009122.html

  10. Android 系统(254)---Android libphonenumber Demo 手机号码归属地

    Android libphonenumber Demo 手机号码归属地 libphonenumber 是google 开源的库,提供手机号码格式化,来电归属地,运营商等多种功能十分强大,现在做个简单的 ...

最新文章

  1. javascript a 标签打开相对路径,绝对路径
  2. visual studio 插件开发(5) -- 在任意位置添加自己的菜单
  3. Java基础 Day07(方法)
  4. 破译手势在对话中的意义
  5. codevs 1269 匈牙利游戏
  6. 解决JSP页面获取的数据库数据乱码问题
  7. 表的转置 行转列: DECODE(Oracle) 和 CASE WHEN 的异同点
  8. UVa-12333:Revenge of Fibonacci 高精度
  9. SQLAlchemy 多态进阶(__mapper_args__ )、多对多标签
  10. 更改管理员密码以后网站不能启动
  11. 【PYTHON】基于tkinter的九型人格测试系统介绍
  12. 基于HTML5的电子病历编辑方法及系统与流程
  13. EBS 报表开发:XML Publisher
  14. 论文笔记:CLIP:Learning Transferable Visual Models From Natural Language Supervision详解
  15. 并发编程系列之一:锁的意义
  16. mysql 数字中文混排序
  17. 点到平面的距离(最短距离)
  18. 专访IBM孙震:流程挖掘行业前景广阔,市场教育待完成
  19. 2022年中职组网络安全国赛A模块解析第二套
  20. 小米8se怎么解屏幕锁_小米8 SE怎样解锁?人脸指纹双解锁安全又快捷!

热门文章

  1. 关系型数据库和主键外键
  2. Druid连接池原理
  3. 《软件测试》学习目标与计划
  4. wincc做皮带动画_WinCC里怎样做动画呢
  5. process.start打开后没有界面_越狱后安装这些美化插件,让手机变好看
  6. 《C》C语言实现FFT算法
  7. TestBench 基本写法与框架
  8. js高级开发:气泡坦克(js对象,属性)
  9. 联想rd650怎么装系统win7_联想启天M4650台式机win10怎么改win7
  10. winpe安装windows2003,硬盘winpe安装windows2003,无光驱硬盘安装windows2003