1

我有来自 Android 联系人的不同国家/地区的手机号码列表。其中一些联系人有国家代码,而另一些则没有。

因此,解决方案可能是:

  1. 获取世界上所有支持的国家代码
  2. 用所有国家代码循环一个数字
  3. 检查号码的有效性

这可能是预测受支持国家数量的一种方法。我想知道是否有更好的方法来解决这个问题?

4

1 回答 1

1
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();

String numberStr = "04157012311";
Set<String> allRegions = phoneUtil.getSupportedRegions();
Set<String> validRegions = new LinkedHashSet<String>();

for (String region : allRegions) {
  try {
    if (phoneUtil.isValid(phoneUtil.parse(numberStr, region))) {
      validRegions.add(region);
    }        
  } catch (NumberParseException e) {
    // Handle NumberParseException
  }
}

validRegions将包含您的电话号码所在地区的 ISO 代码

于 2016-08-13T13:08:25.240 回答