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

使用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));

以上是 使用Java将电话号码转换为国际格式(E.164)的最佳方法是什么? 的全部内容, 来源链接: utcz.com/qa/431390.html

回到顶部