簡體   English   中英

在android SDK中匹配兩種格式的電話號碼的最佳方法是什么?

[英]What is the best way to match two format of phone numbers in android SDK?

在電話號碼格式有問題的情況下,匹配電話號碼的最佳方法應該是什么?

我正在尋找一種標准豐富的最佳實踐方法。 我讓用戶輸入電話號碼並保存到SQLite數據庫。 稍后,當有電話打來時,我通過ITelephony獲得了來話號碼。 我必須將db中的值與入庫號進行匹配並采取措施。 這些數字的格式可能相差很大,並可能導致問題。

為了解決這個問題,我現在使用正則表達式消除格式字符,僅保留數字以獲取正確的匹配。 這工作正常,但我想知道是否有人可以采用更好的方法,或者Android是否具有可以匹配兩個電話號碼的API方法。

謝謝你的關注

編輯:我正在使用的代碼是:

    private boolean matchPhoneNumbers(String numberA, String numberB)
    {           
        //Remove everything that's not a number
        numberA=numberA.replaceAll("[^0-9]", "");
        numberB=numberB.replaceAll("[^0-9]", "");
        //Get the minimum length of one of the strings
        int length=Math.min(numberA.length(),numberB.length());
        numberA=numberA.substring((numberA.length()-length));
        numberB=numberB.substring((numberB.length()-length));  
        //check the difference
        return numberA.equals(numberB);
    }

如果這是Android 4,則可能只需要內置的libphonenumber方法。

遍歷每個字符並除去小於0或大於9的任何字符(易於循環),然后檢查右邊的10個字符是否相同。

從Api級別1開始,有一個輔助功能可用:

boolean PhoneNumberUtils.compare(numberA, numberB);

我碰巧發現了與此帖子平行的帖子,並認為在這里值得一提。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM