2016-07-17 196 views
-2
删除国家/地区代码

我遇到了一些问题,其中一些联系人包含国家/地区代码,而另一些则没有。从电话号码

我有用于获取正在保存在列表中的联系人号码的代码。名单如下:

[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包含数字(其中一些与他们的国家代码和别人不一样)。我怎样才能从拥有它的人那里删除国家代码?

任何帮助或关键字搜索将不胜感激,谢谢。

+0

太少的信息。你的代码在哪里? – Seelenvirtuose

+0

请检查编辑 –

+0

删除国家/地区代码(如果文件中有多个代码)会使电话号码变得毫无意义。为没有的号码提供默认国家代码可能会更好。例如,在北美,假设+1。 –

回答

0

在你的样本数组中你有国家代码之间的短划线( - )。所以你可以使用indexOf来确定数字是否有国家代码。你可以使用正则表达式来做同样的事情([\d]+-[\d]+

你也可以计算degits。通常没有国家代码的号码只有10位数字。这取决于你的情况

0

如果你想删除包含'91 - '的字符串的第一次发生,你可以简单地使用replaceFirst()方法。所以,你的代码最终会是这样的:

contactNumber.replaceAll("\\s+","").replaceFirst("91-",""); 

如果你想检查一个字符串开头'91 - ”,你可以这样做:

if (contactNumber.startsWith("91-")) { 

} 
+0

请编辑更多信息。仅限代码和“尝试这个”的答案是不鼓励的,因为它们不包含可搜索的内容,也不解释为什么有人应该“尝试这个”。 – abarisone

-1

试试看

contactNumber = contactNumber.replace("+91", ""); 

希望这可以帮助...