比较android联系人数据库中的电话号码

比较android联系人数据库中的电话号码,android,sqlite,Android,Sqlite,我有一个国家代码为+91XXXXXXXXX的电话号码。我的android联系人数据库中的电话号码是XX XX XXXXXX。如何在sqlite数据库查询中比较它们。 任何帮助都是值得的 我需要这个更新或删除android数据库中现有的电话号码 注意 Phone number can be of any country. Above is just the example. 有多种方法可以做到这一点: 如下所示: String yourInputString = "+91XXXXXXXXXX";

我有一个国家代码为+91XXXXXXXXX的电话号码。我的android联系人数据库中的电话号码是XX XX XXXXXX。如何在sqlite数据库查询中比较它们。 任何帮助都是值得的

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

注意

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

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

如下所示:

String yourInputString = "+91XXXXXXXXXX";
String dbContactString = "XX XX XXXXXX";
两者格式不同;因此,我们必须从第一个字符串中提取子字符串(“XXXXXXXXX”),还必须从第二个字符串中删除空格(“XXXXXXXXX”)

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)
就是这样

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


希望这有帮助

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

如下所示:

String yourInputString = "+91XXXXXXXXXX";
String dbContactString = "XX XX XXXXXX";
两者格式不同;因此,我们必须从第一个字符串中提取子字符串(“XXXXXXXXX”),还必须从第二个字符串中删除空格(“XXXXXXXXX”)

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)
就是这样

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


希望这有帮助

您可以尝试下面的代码

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

您可以尝试下面的代码

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

谢谢你的回答。但电话号码不仅有+91。它可以是任何国家的。为此,我认为你必须做很多工作。。。。顺便说一句,为什么不将格式为+91XXXXXXXXX的电话号码存储在您要插入的联系人数据库中。这样比较起来很容易。或者你能告诉我你的电话号码总是以“+”字符开头,输入你要与contact db进行比较,或者告诉我你能改变contact db的电话号码格式吗?另一个解决方案是:从contactDbString和inputString=”中删除所有空格//子字符串(最后10位);如下所示:inputString=inputString.substring(inputString.length()-10,inputString.length());并以同样的方式进行比较。许多国家/地区的数字长度不是10,我们无法在字符串开头添加“+XX”,因为我们可能不知道该数字属于哪个国家或地区。谢谢您的回答。但电话号码不仅有+91。它可以是任何国家的。为此,我认为你必须做很多工作。。。。顺便说一句,为什么不将格式为+91XXXXXXXXX的电话号码存储在您要插入的联系人数据库中。这样比较起来很容易。或者你能告诉我你的电话号码总是以“+”字符开头,输入你要与contact db进行比较,或者告诉我你能改变contact db的电话号码格式吗?另一个解决方案是:从contactDbString和inputString=”中删除所有空格//子字符串(最后10位);如下所示:inputString=inputString.substring(inputString.length()-10,inputString.length());许多国家的数字长度不是10,我们不能在字符串的开头加上“+XX”,因为我们可能不知道该数字属于哪个国家或地区。