【问题标题】:Getting INVALID_COUNTRY_CODE exception when trying to parse phone number without country code尝试解析没有国家代码的电话号码时出现 INVALID_COUNTRY_CODE 异常
【发布时间】:2015-08-01 18:01:09
【问题描述】:

我正在使用 libphonenumber jar(版本 7)并尝试在不设置 Region 的情况下解析电话号码。我看到推荐的以下代码。

PhoneNumber phoneNumber = phoneUtil.parse(numberStr, ""));

但是,这会引发 INVALID_COUNTRY_CODE 异常。最新版本有什么变化吗?如何获取给定号码(“+1-xxx-xxx-xxxx”)的区域代码(美国)?

【问题讨论】:

    标签: libphonenumber


    【解决方案1】:

    我使用了 libphonenumber 7.0.8 并且成功了:

    public static void main(final String[] args) {
      String numberStr = "+1 650-253-0000"; // Google
      PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
      PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();
      try {
        PhoneNumber phoneNumber = phoneUtil.parse(numberStr, null);
        System.out.println(geocoder.getDescriptionForNumber(phoneNumber, Locale.ENGLISH));
      } catch (NumberParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    

    它使用:

    • phoneUtil.parse(numberStr, null);
    • phoneUtil.parse(numberStr, "");
    • phoneUtil.parse(numberStr, "ZZ");

    输出始终为Mountain View, CA - 因此该数字已成功解析。

    您可以从javadoc 找到以下信息:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 2012-05-04
      • 2015-01-19
      • 2017-11-22
      • 2021-10-03
      相关资源
      最近更新 更多