首页 > 解决方案 > 在电话号码前输入数字 9

问题描述

如果只有 8 个数字,我需要在电话前面加上数字 9,如果它有 9 个数字,我不需要添加 9

我让我编码,但是,它不工作!

我的用户总共需要 9 个号码- 比如:XXXXX-XXXX

如果号码在电话簿中 总共有8个号码- 像这样:XXXX-XXXX我需要把数字“9”放在所有号码的前面,像这样: 9 XXXX-XXXX

我是初学者,谁能帮帮我?谢谢!

这是我的代码的一部分

   if (phoneNumber != null && !phoneNumber.equals(FireManager.getPhoneNumber())) {
                        //check if contact has installed this app
                        // Is Brazilian number?
                        if (isBrazilPhone(phoneNumber)) {
                            String numberWith9OrNo = phoneNumber;
                            if (phoneHasDigitNine(phoneNumber)) {
                                numberWith9OrNo = new StringBuilder(phoneNumber).replace(5, 6, "").toString();
                                //Log.e("MIGUEL_TAG", "NUMBER WITH A 9 ->" + phoneNumber);
                            } else {
                                // add the 9 digite to find it too
                                numberWith9OrNo = new StringBuilder(phoneNumber).insert(5, "9").toString();
                                //Log.e("MIGUEL_TAG", "NUBER WITHOUT A 9 ->" + numberWith9OrNo);
                            }
                            // Query By numeber with and Withou 9
                            isAFireNumber(context, numberWith9OrNo, id, lastItemId, onContactSyncFinished);
                        }
                        // run with the opposite number from phonenumber.
                        isAFireNumber(context, phoneNumber, id, lastItemId, onContactSyncFinished);
                    }
                }

更多的:

   public static boolean isBrazilPhone(String formatedPhone) {
        // For BR's Phone
        if (formatedPhone == null || formatedPhone.isEmpty() || formatedPhone.length() <= 7 || !formatedPhone.startsWith("+55")) {
            return false;
        }
        return true;

    }

    public static boolean phoneHasDigitNine(String formatedPhone) {
        if (formatedPhone != null && !formatedPhone.isEmpty() && formatedPhone.length() > 6) {
            //Log.e("MIGUEL_LOG", "NUMERO -> " + formatedPhone);
            // +55089999028370
            if (formatedPhone.substring(3).equalsIgnoreCase("0")) {
                return formatedPhone.substring(6, 7).equalsIgnoreCase("9") && formatedPhone.length() >= 15;
            }
            return formatedPhone.substring(5, 6).equalsIgnoreCase("9") && formatedPhone.length() >= 14;
        }
        return false;
    }

标签: android

解决方案


只需删除所有非数字并计算长度。如果你有 8 然后添加额外的数字

    String testNumber = "93-21-21-22"
    String filteredNumber = testNumber.replaceAll("[^0-9]","");
    System.out.print(filteredNumber);

    if(filteredNumber.length() ==8){
         testNumber = "9" + testNumber; //add the extra digit if its length is 8.
    }

推荐阅读