如果我们有一个358541321
没有国家代码的电话号码,有时当电话响起时会显示(+56 - 358541321)
或 +56358541321
。
如何检测响铃号码是否是第一个号码?
该号码不会保存在手机内存中以进行手机查找。
如果我们有一个358541321
没有国家代码的电话号码,有时当电话响起时会显示(+56 - 358541321)
或 +56358541321
。
如何检测响铃号码是否是第一个号码?
该号码不会保存在手机内存中以进行手机查找。
https://developer.android.com/reference/android/telephony/PhoneNumberUtils.html 提供了一个简洁的解决方案:
import android.telephony.PhoneNumberUtils;
...
String one = "+51 - 3245678";
String two = "+513245678";
boolean isSame = PhoneNumberUtils.compare(one, two);
这个问题的通常解决方案是比较号码的最后 X(例如 7 或 8,取决于您所在的国家/地区)数字。在极少数情况下,这可能会导致误报,但通常这是一个很好的近似值,它可以避免不同或缺少国家或地区代码的问题。
Javaregular expression
和 String 函数replaceAll
可以轻松做到这一点。
这边走,
String one = "+51 - 3245678";
String two = "+513245678";
one = one.replaceAll("[^0-9]","");
two = two.replaceAll("[^0-9]","");
Toast.makeText(this, one+" -- "+two, Toast.LENGTH_LONG).show();
if(one.equalsIgnoreCase(two))
{
Toast.makeText(this, "Both Are Equal", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(this, "Different", Toast.LENGTH_LONG).show();
}