我正在使用 libphonenumber jar(版本 7)并尝试在不设置 Region 的情况下解析电话号码。我按照推荐看到了以下代码。
PhoneNumber phoneNumber = phoneUtil.parse(numberStr, ""));
但是,这会引发 INVALID_COUNTRY_CODE 异常。最新版本有什么变化吗?如何获取给定号码(“+1-xxx-xxx-xxxx”)的区域代码(美国)?
我正在使用 libphonenumber jar(版本 7)并尝试在不设置 Region 的情况下解析电话号码。我按照推荐看到了以下代码。
PhoneNumber phoneNumber = phoneUtil.parse(numberStr, ""));
但是,这会引发 INVALID_COUNTRY_CODE 异常。最新版本有什么变化吗?如何获取给定号码(“+1-xxx-xxx-xxxx”)的区域代码(美国)?
我使用了 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”或空值。