从联系人中选择 Phone 个号码

Pick Phone Number from contacts

我对那部分有疑问。如何替换字符串之间的space,何时从联系人列表中获取phone号码? 它工作正常,但一些 android 设备(例如 Samsung Tab)有 spaces 添加到他们的联系人中。我从 contact.So 得到数字 我得到字符串 99 99 99999 而不是 99999999。

还有,如何从该号码中删除国家代码。 例如:+91 999999999 而不是 9999999999 或 +020 9696854549 而不是 9696854549

我知道,使用 .replace() 删除 space。
是否有任何其他过程可以删除字符串之间的 space 。

我附上了我的代码:::

   public void onClick(View view) {
            Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
              startActivityForResult(contactPickerIntent, 
RESULT_PICK_CONTACT);
        }

private void contactPicked(Intent data) {
    Cursor cursor = null;
    try {
        String phoneNo = null ;
        // getData() method will have the Content Uri of the selected contact
        Uri uri = data.getData();
        //Query the content uri
        cursor = getContentResolver().query(uri, null, null, null, null);
        cursor.moveToFirst();
        // column index of the phone number
        int  phoneIndex =cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);

        phoneNo = cursor.getString(phoneIndex);

        mobile_et.setText(phoneNo);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

只需替换phone号

中的每个白色space
phoneNo=phoneNo.replaceAll("\s+","");

Stringclass有个方法:

.replace(char oldChar, char newChar)

它 returns 一个新的 String,是用 newChar 替换此字符串中出现的所有 oldChar 产生的。所以你只是用一个空的 String 替换所有空格(即 ""):

phoneNo = cursor.getString(phoneIndex);
String phoneNumber= str.replaceAll(" ", "");  // your string without any spaces