当前位置: 首页 > 面试题库 >

使用Java将电话号码转换为国际格式(E.164)的最佳方法是什么?

伯英锐
2023-03-14
问题内容

使用Java将电话号码转换为国际格式(E.164)的最佳方法是什么?

给定一个“电话号码”和一个国家/地区ID(例如ISO国家/地区代码),我想将其转换为标准的E.164国际格式电话号码。

我确信我可以很容易地手动完成此操作-但我不确定它在所有情况下均能正常工作。

您将建议使用哪个Java框架/库/实用程序来完成此任务?

附言:“电话号码”可以是一般公众可以识别的任何东西,例如

* (510) 786-0404
* 1-800-GOT-MILK
* +44-(0)800-7310658

最后一个是我的最爱-这是有人在英国写他们的电话号码的方式,这意味着您应该使用+44或使用0。

E.164格式编号应为全数字,并使用完整的国际国家/地区代码(例如+44)


问题答案:

Google提供了一个用于处理电话号码的库。他们用于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));


 类似资料:
  • 在我的iOS应用程序中,我必须转换一个电话号码(在联系人),并将其转换为国际格式(自动发送短信与extern库)。我看到了libPhoneNumber,但问题是我们必须输入国家代码,应用程序必须在所有(几乎)国家工作,所以我不知道用户的国家是什么。 以下是图书馆的工作原理:

  • 我正在使用google库将国际电话号码转换为国家号码。 的一个示例是919744012345 我期望的是“9744012345”(请参阅印度的移动电话号码),但我得到的是带前导零的“09744012345”。 如何正确转换国际电话号码?

  • 问题内容: 如果我只有10个或更多数字的字符串,如何将其格式化为电话号码? 一些简单的例子: 我知道这些并不是格式化它们的唯一方法,而且如果我自己做的话,很有可能我会放弃。有python库或格式化电话号码的标准方法吗? 问题答案: 对于库:电话号码(pypi,源) Google通用库的Python版本,用于解析,格式化,存储和验证国际电话号码。 自述文件不足,但是我发现代码记录清楚。

  • 你好,我有一个电话号码,是:,我想把它转换成:。有一个图书馆http://code.google.com/p/libphonenumber/这可以很好地进行转换,但它需要一个电话号码和一个我无法提供的国家/地区代码,因为我正在读取手机以从DB转换。 基本上,我想要一个脚本或库,将E164作为参数,并将其转换为国际标准格式,如下所示: 欢迎提出任何意见,提前谢谢。

  • 在Github上libphonenumber提供的文档中,有一个演示,它将提供的任何数字转换为国际格式,例如转换为 我想在C#中使用相同的功能。 在libphone的文档中,需要解析号码并提供国家/地区。但是,演示在不提供地区/国家信息的情况下工作。有人能告诉我是怎么做的吗?

  • 问题内容: 我这样存储电话号码: 用户将输入电话号码,而我将使用该电话号码。此应用程序将在全球范围内使用。因此,我还需要国家代码。是存储电话号码的好方法吗?而且,我该如何验证电话号码? 问题答案: 你实际上可能会研究国际标准格式E.164,例如Twilio推荐的格式(该服务具有通过REST请求发送SMS或电话的服务和API)。 这可能是最普遍的电话号码存储方式,尤其是在你使用国际号码的情况下。 1