2015-08-14 78 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

相關問題