【问题标题】:compare phone number in android contacts database比较android联系人数据库中的电话号码
【发布时间】:2015-10-06 16:50:15
【问题描述】:

我有一个国家代码为 +91XXXXXXXXXX 的电话号码。并且我的 android 联系人数据库中的电话号码是 XX XX XXXXXX 的形式。如何在 sqlite 数据库查询中比较它们。 任何帮助都将是可观的......

我需要这个来更新或删除 android 数据库中的现有电话号码。

注意

Phone number can be of any country. Above is just the example.

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    你可以试试下面的代码

    Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode("Pass phone number here"));
    Cursor c = getContentResolver().query(uri, new String[]{PhoneLookup.NUMBER}, null, null, null);
    if(c.getCount()>0){
        c.moveToFirst(); 
        System.out.println(c.getString(c.getColumnIndex(PhoneLookup.NUMBER)));
    }
    c.close();
    

    【讨论】:

      【解决方案2】:

      有多种方法可以做到这一点:

      如下所示:

      String yourInputString = "+91XXXXXXXXXX";
      String dbContactString = "XX XX XXXXXX";
      

      两者都有不同的格式;所以我们必须从第一个字符串中提取子字符串(“XXXXXXXXXX”),还必须从第二个字符串中删除空格(“XXXXXXXXXX”)!

      yourInputString = yourInputString.substring(2); // 2 is start index  and result will be "XXXXXXXXXX" 
      dbContactString = dbContactString.replaceAll("\\s+",""); // replaces all whitespaces and result will be "XXXXXXXXXX"
      

      现在,两者具有相同的格式,因此您可以轻松地将它们与 equals() 进行比较。

      yourInputString.equals(dbContactString) 就是这样。

      如果 yourInputString 的值等于 dbContactString,则返回 true。否则,它将返回 false。

      希望这会有所帮助!

      【讨论】:

      • 感谢您的回答。但是电话号码不仅有+91。可以是任何国家/地区。
      • 为此,我认为您必须做很多工作....顺便说一句。为什么不将格式为 +91XXXXXXXXXX 的电话号码存储在您插入它的联系人数据库中。这样比较容易。
      • 或者你能告诉我你的电话号码总是以'+'字符开头,输入你将与联系人数据库进行比较或者告诉我你能改变你的联系人数据库的电话号码格式吗?
      • 另一种解决方案是:从 contactDbString 和您的 inputString = 中删除所有空格//子字符串(最后 10 位数字);像这样: inputString = inputString.substring(inputString.length()-10, inputString.length());并以相同的方式进行比较。
      • 许多国家/地区的数字长度不是 10,我们不能在字符串开头附加“+XX”插入,因为我们可能不知道该数字属于哪个国家或地区。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      • 2013-07-17
      • 1970-01-01
      • 2012-08-30
      相关资源
      最近更新 更多