为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

跃然一笑 2024-01-05 16:18:39
我需要根据国家/地区代码过滤掉数据。例如,如果电话号码为 +911234567891、+922234567891、+933234567893。现在我们需要动态创建模式来获取电话号码的国家/地区代码。某些国家/地区代码可能是 +91、+3581、+93 等。你能建议一种方法吗
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

您可以使用 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();


查看完整回答
反对 回复 2024-01-05
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

根据您排除的国家/地区数量,创建文本文件/存储并将代码存储在数组中可能会更快,如果没有,以下方法可能会起作用。

这更像是一种高级方法,因为您没有提供任何上下文,即输入样本、预期输出样本、您尝试了什么、研究以及您陷入困境。

一种方法如下。

  1. 下载所有国家/地区和相关拨号代码的列表(请在此处尝试: https: //datahub.io/JohnSnowLabs/iso-3166-country-codes-itu-dialing-codes-iso-4217-currency-codes#resource-iso- 3166-国家/地区代码-itu-拨号-代码-iso-4217-货币-代码_zip )。

  2. 将上述数据读入您的java程序并过滤掉任何不排除的代码,这基本上就是您的排除列表。(https://stackabuse.com/reading-and-writing-csvs-in-java/

  3. 编写一个函数来迭代每个电话号码,如果有匹配则排除 - 下面的伪代码。

for each phone_number do {

   for each country_code {

      if(phone_number.contains(country_code) {

         do exclude phone_number

      }

   }

}


查看完整回答
反对 回复 2024-01-05
  • 2 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信