Java 预测/识别电话号码的国家代码
我有来自不同国家的Android联系人手机号码列表。有些联系人有国家代码,有些则没有 因此,解决方案可以是:Java 预测/识别电话号码的国家代码,java,android,phone-number,libphonenumber,mobile-country-code,Java,Android,Phone Number,Libphonenumber,Mobile Country Code,我有来自不同国家的Android联系人手机号码列表。有些联系人有国家代码,有些则没有 因此,解决方案可以是: 获取世界上所有受支持的国家/地区代码 用所有国家/地区代码循环一个数字 检查号码的有效性 这可能是预测受支持国家数量的一种方法。我想知道是否有更好的方法来解决这个问题?PhoneNumberUtil phoneUtil=PhoneNumberUtil.getInstance(); PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstanc
PhoneNumberUtil phoneUtil=PhoneNumberUtil.getInstance();
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
}
}
字符串编号str=“0415701231”;
设置allRegions=phoneUtil.getSupportedRegions();
Set validRegions=新建LinkedHashSet();
用于(字符串区域:所有区域){
试一试{
if(phoneUtil.isValid(phoneUtil.parse(numberStr,region))){
validRegions.add(地区);
}
}捕获(编号ParseException e){
//句柄号ParseException
}
}
validRegions
将包含您的电话号码所在地区的ISO代码如果可能的话,我会感到惊讶。我希望在许多国家,同一个号码可以作为一个电话号码。你是对的,但我相信每个国家可能有不同的频谱定义。e、 g.01760179。。。在德国和其他国家的类似差异可能导致识别此类号码的国家代码。感谢@0x60分享。这似乎是一个可能的解决方案,但理论上可以有许多有效的数字。我想知道这是唯一的解决办法还是有更好的方法。。。