2017-04-07 14 views
2

私のすべての電話連絡先をAndroidモニターに以下のコードで印刷します。電話番号が00で始まるところでは、00を+に変更したいと思います。しかし、それは動作していません。何が間違っているのか教えていただけますか?startsWithとreplaceFirstを使用して私のために働いていません。

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ContentResolver cr = getContentResolver(); 
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, 
       null, null, null, null); 

     if (cur.getCount() > 0) { 
      while (cur.moveToNext()) { 
       String id = cur.getString(
         cur.getColumnIndex(ContactsContract.Contacts._ID)); 
       String name = cur.getString(cur.getColumnIndex(
         ContactsContract.Contacts.DISPLAY_NAME)); 

       if (cur.getInt(cur.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 phoneNo = pCur.getString(pCur.getColumnIndex(
           ContactsContract.CommonDataKinds.Phone.NUMBER)); 

         if (phoneNo.startsWith("00")) { 
          System.out.println(phoneNo.replaceFirst("00", "+")); 
         } 

         System.out.println("Name: " + name); 
         System.out.println("Phone No: " + phoneNo); 

        } 
        pCur.close(); 
       } 
      } 
     } 

答えて

3

replaceFirst()それはオブジェクトを変異させていない、Stringを返します。割り当てを行う必要があります。

phoneNo = phoneNo.replaceFirst("00", "+") 
関連する問題