我有一個電話號碼與國家代碼像+ 91XXXXXXXXXX。我的android聯繫人數據庫中的電話號碼是XX XX XXXXXX的形式。如何在sqlite數據庫查詢中比較它們。 任何幫助將是明顯的....比較android的聯繫人數據庫中的電話號碼
我需要此更新或刪除android數據庫中的現有電話號碼。
注意
Phone number can be of any country. Above is just the example.
我有一個電話號碼與國家代碼像+ 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