首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较两个电话号码

比较两个电话号码
EN

Stack Overflow用户
提问于 2014-08-08 09:39:43
回答 3查看 4K关注 0票数 4

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

我试过这样的PhoneNumberUtils.Compare:

代码语言:javascript
复制
if(PhoneNumberUtils.compare("+11234567890", "34567890"))
{
    Toast.makeText(getApplicationContext(), "Are same", Toast.LENGTH_LONG).show();
}

但是,对于"+11234567890“、"34567890”,当它们不相同时,它返回true。

有什么更好的方法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-09 04:05:17

解决这个问题的最好方法是使用Google的libphonenumber库

代码语言:javascript
复制
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相同的结果

票数 9
EN

Stack Overflow用户

发布于 2014-08-08 09:43:32

根据文件:

比较电话号码a和b,并返回真正的,如果它们是完全相同的足以满足来电显示目的。

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

票数 4
EN

Stack Overflow用户

发布于 2014-08-08 09:47:22

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

代码语言:javascript
复制
String number1 = "+11234567890"; 
String number2 = "34567890"; 
number1.compareTo(number2);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25200400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档