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

问题:

需要根据用户输入的手机号 ,格式化 输出 对应的国际标准手机号格式。比如:输入:18666666666 ==> +86 186 6666 6666

解决:

使用到了Google的一个号码解析库:libphonenumber里面有多种语言的库。

使用:

// 输入的号码
String swissNumberStr = "044 668 18 00";
// 初始化
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {PhoneNumber swissNumberProto = phoneUtil.parse(swissNumberStr, "CH");
} catch (NumberParseException e) {System.err.println("NumberParseException was thrown: " + e.toString());
}

其中swissNumberProto 的结构:

{
// 国家编号"country_code": 41,"national_number": 446681800
}

检测输入的号码是否有效:

boolean isValid = phoneUtil.isValidNumber(swissNumberProto); // returns true

还可以根据需求输出多种格式的号码格式:

// Produces "+41 44 668 18 00"
System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.INTERNATIONAL));
// Produces "044 668 18 00"
System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.NATIONAL));
// Produces "+41446681800"
System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.E164));

还可以改变参数输出不同国家格式的号码:

//US 可替换
// 输出 "011 41 44 668 1800".
System.out.println(phoneUtil.formatOutOfCountryCallingNumber(swissNumberProto, "US"));

自定义格式输出:

PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
AsYouTypeFormatter formatter = phoneUtil.getAsYouTypeFormatter("US");
System.out.println(formatter.inputDigit('6'));  // Outputs "6"
...  // Input more digits
System.out.println(formatter.inputDigit('3'));  // Now outputs "650 253"

根据号码输出号码归属地的名称:

PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();
// Outputs "Zurich"  输出英文
System.out.println(geocoder.getDescriptionForNumber(swissNumberProto, Locale.ENGLISH));
// Outputs "Zürich" 德语
System.out.println(geocoder.getDescriptionForNumber(swissNumberProto, Locale.GERMAN));
// Outputs "Zurigo" 意大利
System.out.println(geocoder.getDescriptionForNumber(swissNumberProto, Locale.ITALIAN));

获取手机运营商:

PhoneNumber swissMobileNumber =new PhoneNumber().setCountryCode(41).setNationalNumber(798765432L);
PhoneNumberToCarrierMapper carrierMapper = PhoneNumberToCarrierMapper.getInstance();
// Outputs "Swisscom"  瑞士电信
System.out.println(carrierMapper.getNameForNumber(swissMobileNumber, Locale.ENGLISH));

使用libphonenumber格式化手机号以及归属地查询相关推荐

  1. 如何使用免费手机号归属地查询API快速获取手机号归属地,两种方法【源码可用】

    福利彩蛋:没有好玩的API接口?上百款免费接口等你来 一.通过手机号码归属地接口查询 根据手机号码(段),查询手机号码归属地信息,如省份 .城市.运营商 简单快捷,根据个人需求进行开发 接口请求流程: ...

  2. Android Studio之号码归属地查询(Webservice)

    1.准备工作 (1)下载ksoap2-android-assembly-xxx-jar-with-dependencies.jar包 下载地址: Index of /repositories/ksoa ...

  3. java 手机号归属地查询

    根据手机号码查询归属地.运营商我们引用google的libphonenumber包,libphonenumber是用于解析.格式化.存储和校验电话号码的Java.C++或JavaScript类库. 依 ...

  4. 运营商手机号归属地查询

    三大运营商归属地查询,手机号类型查询,直接上代码 1.关键jar包 carrier-1.73.jar geocoder-2.83.jar libphonenumber-8.8.6.jar prefix ...

  5. java手机号归属地查询

    java手机号归属地查询 Maven 依赖 代码实现: 测试结果: 官方项目地址:https://github.com/google/libphonenumber/tree/master/java/l ...

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

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

  7. .net函数查询_Java百宝箱——实现ip地址、手机号、身份证号归属地查询

    文章目录 1.功能界面 2.ip地址查询 3.身份证归属地查询 4.更多功能(简繁体转换.天气查询) 网上冲浪是我们每个人每天必做的运动 ,那么在冲浪时,每个人都会携带一个ip地址.电影中的黑客往往能 ...

  8. Java百宝箱——实现ip地址、手机号、身份证号归属地查询

    文章目录 1.功能界面 2.ip地址查询 3.身份证归属地查询 4.更多查询 1.功能界面 package com.company;import com.alibaba.fastjson.JSONOb ...

  9. 批量手机号归属地查询

    批量手机号归属地查询 使用Python进行批量手机号归属地查询 使用Python进行批量手机号归属地查询 程序代码: import requests import re import xlwt imp ...

最新文章

  1. 以太坊挖矿源码:clique算法
  2. Oracle RAC(Real Application Clusters)
  3. php压制错误的代码,为什么要压制PHP错误?
  4. java 11_JAVA 11初体验
  5. linux bash 字符串 连接,Linux Bash 中字符串操作
  6. 如何在MATLAB下把模糊推理系统转化为查询表(转载)
  7. Hadoop的改进实验(中文分词词频统计及英文词频统计)(4/4)
  8. 水环境模型与大数据技术融合研究
  9. centsos7修改主机名 [root@st152 ~]# cat /etc/hostname
  10. linux服务占用的真实内存,为什么TOP看不出真实的内存占用情况?
  11. python计数循环,python - Python中的密码求解器循环计数 - SO中文参考 - www.soinside.com...
  12. Java的split()用法
  13. android代码设置digits,android:digits属性
  14. 不知道前端课程学什么?这份完整的web前端课程大纲分享给你
  15. codeforces1299C Water Balance
  16. Tone mapping进化论
  17. 实现文本框以及其背景(根据输入字数)动态拉伸
  18. 一个不错的java机器学习项目JSAT
  19. IDEA--如何解决Java:程序包xxxx不存在
  20. 充气娃娃什么感觉?Python告诉你

热门文章

  1. step 文件在sw怎么编辑_solidworks如何直接编辑STP文件
  2. js中window。location.search的用法和作用。
  3. 普乐蛙VR大型游乐场设备儿童vr游乐园VR主题公园项目解决方案
  4. 杭电2043,小细节。。。。。
  5. 就业困惑!Linux程序员的就业方向
  6. 基于MCS-51单片机路口红绿灯控制设计(含源码及Proteus布线图)
  7. 订阅者java_发布者订阅者模式之JAVA实现
  8. 机器学习/数据挖掘之中国大牛
  9. scrapy爬取优信二手车
  10. 读书笔记-人月神话2