使用libphonenumber格式化手机号以及归属地查询
使用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格式化手机号以及归属地查询相关推荐
- 如何使用免费手机号归属地查询API快速获取手机号归属地,两种方法【源码可用】
福利彩蛋:没有好玩的API接口?上百款免费接口等你来 一.通过手机号码归属地接口查询 根据手机号码(段),查询手机号码归属地信息,如省份 .城市.运营商 简单快捷,根据个人需求进行开发 接口请求流程: ...
- Android Studio之号码归属地查询(Webservice)
1.准备工作 (1)下载ksoap2-android-assembly-xxx-jar-with-dependencies.jar包 下载地址: Index of /repositories/ksoa ...
- java 手机号归属地查询
根据手机号码查询归属地.运营商我们引用google的libphonenumber包,libphonenumber是用于解析.格式化.存储和校验电话号码的Java.C++或JavaScript类库. 依 ...
- 运营商手机号归属地查询
三大运营商归属地查询,手机号类型查询,直接上代码 1.关键jar包 carrier-1.73.jar geocoder-2.83.jar libphonenumber-8.8.6.jar prefix ...
- java手机号归属地查询
java手机号归属地查询 Maven 依赖 代码实现: 测试结果: 官方项目地址:https://github.com/google/libphonenumber/tree/master/java/l ...
- 手机号归属地 mysql脚本_示例演示手机号归属地查询功能
示例演示手机号归属地查询功能(调用webservice接口) 1,新建java项目,创建包 2,点击项目名称创建web service->web service client 3,选择JAX-W ...
- .net函数查询_Java百宝箱——实现ip地址、手机号、身份证号归属地查询
文章目录 1.功能界面 2.ip地址查询 3.身份证归属地查询 4.更多功能(简繁体转换.天气查询) 网上冲浪是我们每个人每天必做的运动 ,那么在冲浪时,每个人都会携带一个ip地址.电影中的黑客往往能 ...
- Java百宝箱——实现ip地址、手机号、身份证号归属地查询
文章目录 1.功能界面 2.ip地址查询 3.身份证归属地查询 4.更多查询 1.功能界面 package com.company;import com.alibaba.fastjson.JSONOb ...
- 批量手机号归属地查询
批量手机号归属地查询 使用Python进行批量手机号归属地查询 使用Python进行批量手机号归属地查询 程序代码: import requests import re import xlwt imp ...
最新文章
- 以太坊挖矿源码:clique算法
- Oracle RAC(Real Application Clusters)
- php压制错误的代码,为什么要压制PHP错误?
- java 11_JAVA 11初体验
- linux bash 字符串 连接,Linux Bash 中字符串操作
- 如何在MATLAB下把模糊推理系统转化为查询表(转载)
- Hadoop的改进实验(中文分词词频统计及英文词频统计)(4/4)
- 水环境模型与大数据技术融合研究
- centsos7修改主机名 [root@st152 ~]# cat /etc/hostname
- linux服务占用的真实内存,为什么TOP看不出真实的内存占用情况?
- python计数循环,python - Python中的密码求解器循环计数 - SO中文参考 - www.soinside.com...
- Java的split()用法
- android代码设置digits,android:digits属性
- 不知道前端课程学什么?这份完整的web前端课程大纲分享给你
- codeforces1299C Water Balance
- Tone mapping进化论
- 实现文本框以及其背景(根据输入字数)动态拉伸
- 一个不错的java机器学习项目JSAT
- IDEA--如何解决Java:程序包xxxx不存在
- 充气娃娃什么感觉?Python告诉你