3

你好,我有一个电话号码E164 format+212640588740我想把它转换成它的international format+212 640-588740。有这个库http://code.google.com/p/libphonenumber/可以很好地进行此转换,但它需要一个电话号码和一个我无法提供的国家/地区代码,因为我正在阅读要转换的电话D B。

基本上我想要一个将 E164 作为参数并将其转换为国际标准格式的脚本或库,如下所示:

+212640588740 => +212 640-588740
+33336578668 => +33 3 36 57 86 68
+17877491410 => +1 787-749-1410

欢迎任何想法,在此先感谢您。

4

1 回答 1

2

如果您的所有输入都是 E164 格式,您可以使用com.google.i18n.phonenumbers.PhoneNumberUtil.parse()方法将您的字符串转换为PhoneNumber实例,然后您可以使用该方法com.google.i18n.phonenumbers.PhoneNumberUtil.format()将其转换为格式为 INTERNATIONAL 的字符串。

您不需要事先知道国家代码(或解析它),请参阅该parse()方法的 params 文档:

defaultRegion - ... 如果保证号码以“+”开头,后跟国家/地区呼叫代码,则可以提供“ZZ”或 null。

这是一个简短的示例:

PhoneNumber number = com.google.i18n.phonenumbers.PhoneNumberUtil.parse("+12781112222", null);
String result = com.google.i18n.phonenumbers.PhoneNumberUtil.format(number, com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);

有关用法,请参阅文档:

com.google.i18n.phonenumbers.PhoneNumberUtil.parse() com.google.i18n.phonenumbers.PhoneNumberUtil.format()

于 2013-12-03T14:28:56.140 回答