比较两个电话号码

Ara*_*hdn 1 phone-number libphonenumber

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

我试过像这样的PhoneNumberUtils.Compare:

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

但它对于"+11234567890","34567890"返回true,而它们不相同.

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

Ara*_*hdn 8

解决此问题的最佳方法是使用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();
}
Run Code Online (Sandbox Code Playgroud)

如果我们使用MatchType.SHORT_NSN_MATCH它将返回相同的结果PhoneNumberUtils.compare