我试图找出两个电话号码是否相同(两个相同的电话号码可能不是相同的格式,因为+11234567890与1234567890和0011234567890相同)
我试过这样的PhoneNumberUtils.Compare:
if(PhoneNumberUtils.compare("+11234567890", "34567890"))
{
Toast.makeText(getApplicationContext(), "Are same", Toast.LENGTH_LONG).show();
}但是,对于"+11234567890“、"34567890”,当它们不相同时,它返回true。
有什么更好的方法吗?
发布于 2014-08-09 04:05:17
解决这个问题的最好方法是使用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相同的结果
发布于 2014-08-08 09:43:32
根据文件:
比较电话号码a和b,并返回真正的,如果它们是完全相同的足以满足来电显示目的。
数字是相同的,因为唯一的区别是前缀,这对于比较来说是不必要的。
发布于 2014-08-08 09:47:22
如果你真的想区分一个电话号码和一个电话号码加上它的前缀,你应该用字符串比较方法。
String number1 = "+11234567890";
String number2 = "34567890";
number1.compareTo(number2);https://stackoverflow.com/questions/25200400
复制相似问题