猿问

JAVA中国家/地区代码的模式匹配

我需要根据国家/地区代码过滤掉数据。例如,如果电话号码为 +911234567891、+922234567891、+933234567893。现在我们需要动态创建模式来获取电话号码的国家/地区代码。某些国家/地区代码可能是 +91、+3581、+93 等。

你能建议一种方法吗


跃然一笑
浏览 126回答 2
2回答

紫衣仙女

您可以使用 Maven 存储库libphonenumber通过本地电话号码获取国家/地区代码(例如:+85595555555 -> KH)PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();Phonenumber.PhoneNumber phoneNumber = phoneNumberUtil.parse("+85595555555", null);String countryCode = phoneNumberUtil.getRegionCodeForNumber(phoneNumber);获取国家/地区全名(例如:KH -> 柬埔寨)String displayCountryName = new Locale("", countryCode).getDisplayCountry();

哆啦的时光机

根据您排除的国家/地区数量,创建文本文件/存储并将代码存储在数组中可能会更快,如果没有,以下方法可能会起作用。这更像是一种高级方法,因为您没有提供任何上下文,即输入样本、预期输出样本、您尝试了什么、研究以及您陷入困境。一种方法如下。下载所有国家/地区和相关拨号代码的列表(请在此处尝试: https: //datahub.io/JohnSnowLabs/iso-3166-country-codes-itu-dialing-codes-iso-4217-currency-codes#resource-iso- 3166-国家/地区代码-itu-拨号-代码-iso-4217-货币-代码_zip )。将上述数据读入您的java程序并过滤掉任何不排除的代码,这基本上就是您的排除列表。(https://stackabuse.com/reading-and-writing-csvs-in-java/)编写一个函数来迭代每个电话号码,如果有匹配则排除 - 下面的伪代码。for each phone_number do {   for each country_code {      if(phone_number.contains(country_code) {         do exclude phone_number      }   }}
随时随地看视频慕课网APP

相关分类

Java
我要回答