【发布时间】:2016-07-17 15:26:37
【问题描述】:
我遇到了一个问题,其中一些联系人包含国家/地区代码,而另一些则没有。
我有用于获取保存在列表中的联系人号码的代码。该列表如下所示:
[9999999999, 91-8888888888, 91-0000000000, 1111111111]
现在,我想从拥有它的号码中删除国家代码。我想不出办法来检查这个。
这是我获取联系人的代码:
ContentResolver cr = getApplicationContext().getContentResolver(); //Activity/Application android.content.Context
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, "UPPER(" + ContactsContract.Contacts.DISPLAY_NAME + ") ASC");
if(cursor.moveToFirst())
{
do
{
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
if(Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
{
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",new String[]{ id }, null);
while (pCur.moveToNext())
{
String contactName = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY));
String contactNumber = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
allContacts.add(contactName);
contactNumber = contactNumber.replaceAll("\\s+","");
allnumbers.add(contactNumber);
break;
}
pCur.close();
}
} while (cursor.moveToNext()) ;
}
}
这里,allnumbers 包含数字(其中有些带有国家代码,有些则没有)。如何从拥有国家代码的人那里删除国家代码?
任何帮助或搜索关键字将不胜感激,谢谢。
【问题讨论】:
-
信息太少。你的代码呢?
-
如果文件中有多个国家代码,则删除国家代码会使电话号码毫无意义。为没有国家代码的号码提供默认国家代码可能会更好。例如,在北美,假设 +1。
-
国家代码有“+”号吗?
-
您基本上是在问如何进行字符串操作吗?如果是这样,请阅读一些关于此的教程。这对 SO 来说是题外话。
-
没有使用号码来匹配某些东西,而国家代码无法匹配,所以我需要删除国家代码。是的,它显示+登录日志
标签: java android country-codes