比较android联系人数据库中的电话号码
我有一个国家代码为+91XXXXXXXXX的电话号码。我的android联系人数据库中的电话号码是XX XX XXXXXX。如何在sqlite数据库查询中比较它们。 任何帮助都是值得的 我需要这个更新或删除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";
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”,因为我们可能不知道该数字属于哪个国家或地区。