What is the best way for converting phone numbers into international format (E.164) using Java?(使用 Java 将电话号码转换为国际格式 (E.164) 的最佳方法是什么?)
问题描述
使用 Java 将电话号码转换为国际格式 (E.164) 的最佳方法是什么?
What is the best way for converting phone numbers into international format (E.164) using Java?
给定一个电话号码"和国家/地区 ID(比如说 ISO 国家/地区代码),我想将其转换为标准 E.164 国际格式电话号码.
Given a 'phone number' and a country id (let's say an ISO country code), I would like to convert it into a standard E.164 international format phone number.
我确信我可以很容易地手动完成 - 但我不确定它在所有情况下都能正常工作.
I am sure I can do it by hand quite easily - but I would not be sure it would work correctly in all situations.
您会推荐哪个 Java 框架/库/实用程序来完成此操作?
Which Java framework/library/utility would you recommend to accomplish this?
附:电话号码"可以是公众可以识别的任何内容 - 例如
P.S. The 'phone number' could be anything identifiable by the general public - such as
* (510) 786-0404
* 1-800-GOT-MILK
* +44-(0)800-7310658
最后一个是我最喜欢的 - 这是一些人在英国写他们的号码的方式,这意味着你应该使用 +44 或你应该使用 0.
that last one is my favourite - it is how some people write their number in the UK and means that you should either use the +44 or you should use the 0.
E.164 格式编号应为全数字,并使用完整的国际国家代码(例如+44)
The E.164 format number should be all numeric, and use the full international country code (e.g.+44)
推荐答案
Google 提供了一个用于处理电话号码的库.与他们用于 Android 的相同
Google provides a library for working with phone numbers. The same one they use for Android
http://code.google.com/p/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());
}
// 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));
这篇关于使用 Java 将电话号码转换为国际格式 (E.164) 的最佳方法是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 Java 将电话号码转换为国际格式 (E.164) 的最
基础教程推荐
- 在螺旋中写一个字符串 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01