2015-07-10 29 views
1

我正在使用libphonenumber jar(版本7)並試圖在未設置區域的情況下解析電話號碼。我看到下面的代碼建議。嘗試解析無國家代碼的電話號碼時出現INVALID_COUNTRY_CODE異常

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

但是,這引發了INVALID_COUNTRY_CODE異常。最新版本有什麼改變嗎?如何獲得地區代碼(美國)給定的數字,如(「+ 1-xxx-xxx-xxxx」)?

回答

0

我用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」或者空可以提供。

相關問題