1. ホーム
  2. android

[解決済み] 電話番号から国コードを抽出する[libphonenumber]。

2023-06-10 08:45:10

質問

次のような文字列があります。+33123456789 (フランス語の電話番号). 私は国を知らずに国コード(+33)を抽出したいです。例えば、私が他の国の電話を持っている場合、それは動作するはずです。Googleのライブラリを使っています。 https://code.google.com/p/libphonenumber/ .

もし私が国を知っているなら、それは私が国コードを見つけることができるクールです:

PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
int countryCode = phoneUtil.getCountryCodeForRegion(locale.getCountry());

という文字列がありますが、国を知らなくてもパースできる方法が見当たりません。

どのように解決するのですか?

さて、そんなわけでlibphonenumberのgoogleグループに参加したのですが( https://groups.google.com/forum/?hl=en&fromgroups#!forum/libphonenumber-discuss(フォーラム/libphonenumber-ディスカッション ) に参加し、質問をしてみました。

電話番号が "+" で始まっている場合、パラメータに国を設定する必要はないのでしょうか?以下はその例です。

PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
    // phone must begin with '+'
    PhoneNumber numberProto = phoneUtil.parse(phone, "");
    int countryCode = numberProto.getCountryCode();
} catch (NumberParseException e) {
    System.err.println("NumberParseException was thrown: " + e.toString());
}