3

こんにちは、電話番号が : にあり、それ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

どんなアイデアでも大歓迎です。事前に感謝します。

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 に答える