首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于PhoneNumberUtils.compare来说,“严格”或“松散”比较意味着什么?

对于PhoneNumberUtils.compare来说,“严格”或“松散”比较意味着什么?
EN

Stack Overflow用户
提问于 2018-11-23 11:43:23
回答 1查看 220关注 0票数 2

带有签名PhoneNumberUtils.compare(Context context, String a, String b)允许您比较两个电话号码,看看它们是否相等。文件上说:

检查资源以确定是使用严格的比较算法还是使用松散的比较算法。

这是什么意思?如何检查资源以确定使用哪种算法,以及这些算法有何不同?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-23 13:24:06

如何检查资源以确定使用哪一种算法

它调用Context参数上的Context来检索将由载波设置的bool资源;即:

代码语言:javascript
复制
com.android.internal.R.bool.config_use_strict_phone_number_comparation

请注意,compare(String a, String b)方法自动使用松散方法。

算法有何不同?

两者都相当复杂,但主要的区别是,松散的算法基本上是从右向左进行盲字符比较,只考虑格式上的差异。对于国内电话来说,这通常是足够的。

然而,严格的算法考虑到国际数字的各种分钟规则及其不同的可接受的差异;例如,如来文所述,“在日本,"090-1234-1234 -1234不得等于90-1234-1234”。

这些算法(目前)存在于compareLoosely()compareStrictly()PhoneNumberUtils方法中。我没有直接连接到线路号码,因为这是主分支,它们最终肯定会改变的。

本质上,如果你相对确定你只处理国内的数字,宽松的方法可能是好的。如果您要处理国际号码,请使用严格的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53446070

复制
相关文章

相似问题

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