比较两个电话号码

时间:2014-08-08 09:39:44

标签: android phone-number

我试图查找两个电话号码是否相同(两个相同的电话号码可能不是同一格式,因为+11234567890与1234567890和0011234567890相同)

我试过像这样的PhoneNumberUtils.Comp:

if(PhoneNumberUtils.compare("+11234567890", "34567890"))
{
    Toast.makeText(getApplicationContext(), "Are same", Toast.LENGTH_LONG).show();
}

但是对于“+11234567890”,“34567890”,它们返回true,而它们不相同。

有没有更好的方法来做到这一点?

3 个答案:

答案 0 :(得分:6)

解决此问题的最佳方法是使用Google的libphonenumber库

PhoneNumberUtil pnu = PhoneNumberUtil.getInstance();

MatchType mt = pnu.isNumberMatch("+11234567890", "34567890");
if( mt == MatchType.NSN_MATCH || mt == MatchType.EXACT_MATCH )
{
    Toast.makeText(getApplicationContext(), "are Same" , Toast.LENGTH_LONG).show();
}

如果我们使用MatchType.SHORT_NSN_MATCH,则会返回与PhoneNumberUtils.compare

相同的结果

答案 1 :(得分:3)

根据文件:

  

比较电话号码a和b,如果它们相同,则返回true   足以用于来电显示。

数字是相同的,因为唯一的区别是前缀,这对于比较来说是不必要的。

答案 2 :(得分:0)

如果您真的想要区分电话号码和电话号码加上它的前缀,您应该使用字符串比较方法。