如何将不同格式的相同号码分配给一个联系人?
在三星手机应用程序中,
+1 8542569,8542569和18542569在调用时分配给一个联系人:"示例USA" :
即使"美国示例"只有电话簿中列出的+1 854-256-9:
这适用于每个国家,而不仅仅是美国。这是新西兰的一个例子:
^这里,"新西兰示例"已列出91234567。
而且,我可以致电91234567,006 9-123 4567或6491234567,他们都将被分配到"新西兰示例"接触:
我的问题是:如何在Java中为每个国家/地区做同样的事情,就像三星股票应用程序一样?
说我有3个字符串:91234567,00,69 9-123 4567和6491234567。 我的应用如何识别他们属于同一个联系人,并且他们的数字基本相同?
我确信它可以完成,因为三星做到了:)
同样,我希望代码适用于每个国家/地区。
答案 0 :(得分:-1)
第1部分:删除起始零。 它们没用。它们可能很有用,但通过删除它们会更容易。
This quora link with be a bit useful
现在,国家/地区的电话号码位数不同。比如,印度有10个与新西兰和美国不匹配。
假设在删除特定区域代码后,每个国家/地区的数字都有特定的位数。
第2部分:您可以使用country code
和number of digits after that
创建多维矩阵。匹配起始国家/地区代码,然后验证位数。
此方法可能与不同国家/地区发生冲突,但我对此事情缺乏了解。 例如。冲突:
Country A: country_code = +1, digits = 6
Country B: country_code = +12, digits =5
+1 234567
+12 34567