如何进行数字解析?

时间:2014-04-05 06:12:17

标签: android libphonenumber

我正在制作一个项目,我正在使用手机联系人。在这个应用程序中,我将号码(来电号码)与联系人列表中保存的号码相匹配。我已经格式化了这个号码,它正在使用这种格式+919045308261保存号码的电话上工作,并且它无法使用此格式保存号码的电话+91 90 45 308261 我使用的代码是......

int hasPhoneNumber = Integer.parseInt(cursor.getString(cursor
                        .getColumnIndex(HAS_PHONE_NUMBER)));

                if (hasPhoneNumber > 0) {


                    Cursor phoneCursor = contentResolver.query(
                            PhoneCONTENT_URI, null, Phone_CONTACT_ID + " = ?",
                            new String[] { contact_id }, null);

                    while (phoneCursor.moveToNext()) {


                        phoneNumber = phoneCursor.getString(phoneCursor
                                .getColumnIndex(NUMBER));
                        String formatedphn = PhoneNumberUtils.formatNumber(phoneNumber);
formatedphn = formatedphn.trim();
                        Log.i("formated number: ", formatedphn);
                //here the number is from which the call is incoming        
                        if(number.equals(formatedphn)){
                            Toast.makeText(getApplicationContext(), "got it", Toast.LENGTH_SHORT).show();
                            Log.i("Match occurs", "got a hit");
                            //Log.i("number= ", number);
                            String contname = phoneCursor.getString(phoneCursor
                                    .getColumnIndex(DISPLAY_NAME));
                            if(!contname.equals(null)){
                                Toast.makeText(getApplicationContext(), contname, Toast.LENGTH_SHORT).show();
                                tts.speak(contname+" calling", TextToSpeech.QUEUE_FLUSH, null);

                            }
                        }

4 个答案:

答案 0 :(得分:1)

String.trim()删除String的所有前导和尾随空格,但不删除中间的空格。 要删除String的所有空格,可以使用此正则表达式:

str = str.replaceAll("\\s+","");

答案 1 :(得分:0)

您可以执行以下操作,在从字符串中删除所有空格后进行比较。

String st = " Hello world";
st = st.trim(); // It should work fine and remove all white spaces.

现在比较两个字符串。 最好的

答案 2 :(得分:0)

以下是一些参考资料:

答案 3 :(得分:0)

根据此主题How to format a phone number using PhoneNumberUtils? 你可以格式化数字从+98 91 28 033921到这个0912 80 33921并与此比较