您好,我的电话号码是E164 format
:+212640588740
,我想将其转换为international format
:+212 640-588740
。
有这个库http://code.google.com/p/libphonenumber/很好地完成了这个转换,但它需要一个我无法提供的电话号码和国家代码,因为我正在读取手机以便从DB转换。
基本上我想要一个脚本或库,它将E164作为参数并将其转换为国际标准格式,如下所示:
+212640588740 => +212 640-588740
+33336578668 => +33 3 36 57 86 68
+17877491410 => +1 787-749-1410
欢迎任何想法,谢谢你。
答案 0 :(得分: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()