如何确定两个电话号码是否相同?

时间:2012-08-07 11:42:26

标签: android

如果我们的电话号码如358541321而没有国家/地区代码,则有时当电话响铃时会显示(+56 - 358541321)+56358541321

如何检测环状数字是否为第一个数字?

该号码未保存在手机记忆库中以便进行电话查询。

3 个答案:

答案 0 :(得分:3)

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);

答案 1 :(得分:1)

此问题的常见解决方案是比较最后一个X(例如7或8,具体取决于您所在国家/地区)的数字。在极少数情况下,这可能会导致误报,但通常它是一个很好的近似值,它避免了国家或地区代码不同或缺失的问题。

答案 2 :(得分:0)

Java regular expression和字符串函数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();
    }