比较android的联系人数据库中的电话号码
问题描述:
我有一个电话号码与国家代码像+ 91XXXXXXXXXX。我的android联系人数据库中的电话号码是XX XX XXXXXX的形式。如何在sqlite数据库查询中比较它们。 任何帮助将是明显的....比较android的联系人数据库中的电话号码
我需要此更新或删除android数据库中的现有电话号码。
注意
Phone number can be of any country. Above is just the example.
答
你可以尝试
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();
答
可以有多种方法可以做到这一点:
正如你看到下面的位置:
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。否则,它将返回错误。
希望这会有所帮助!
感谢下面的代码为你的答案。但电话号码不仅有+91。它可以是任何国家的。 –
因为我认为你必须做很多工作....顺便说一句。为什么不将格式为+ 91XXXXXXXXXX的电话号码存储在您插入的联系人数据库中。这样比较容易。 – narainsagar
或者你能告诉我,你的电话号码总是以'+'char开头,输入你会与contact db进行比较,或者告诉我你能否改变你的联系db的电话号码格式? – narainsagar