2015-08-14 97 views
1

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

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

注意

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

回答

2

你可以尝试

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。否则,它将返回错误。

希望这会有所帮助!

+0

感谢下面的代码为你的答案。但电话号码不仅有+91。它可以是任何国家的。 –

+0

因为我认为你必须做很多工作....顺便说一句。为什么不将格式为+ 91XXXXXXXXXX的电话号码存储在您插入的联系人数据库中。这样比较容易。 – narainsagar

+0

或者你能告诉我,你的电话号码总是以'+'char开头,输入你会与contact db进行比较,或者告诉我你能否改变你的联系db的电话号码格式? – narainsagar

相关问题