Как проверить первые 2 символа строки в Android

В моем приложении я хочу получить номер телефона от пользователя, и если первый 2 персонажа этого номера будет 09, я хочу показать Toast.
Я написал приведенный ниже код, но он всегда показывает мне сообщение Toast. Мой код:

    phoneNumberPage_phoneEdtTxt.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if (s.toString().length() < 11) {
                enableDisableBtn(0.3f, false);
            } else {
                hideKeyboard(activity);
                enableDisableBtn(1.0f, true);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {
            if (s.toString().trim().length()==1){
                if (!s.equals("0")){
                    Toast.makeText(context, "NOOOOOO", Toast.LENGTH_SHORT).show();
                }
            }
        }
    });
}

Как мне это сделать? Не могли бы вы мне помочь?

вы можете использовать метод startsWith.

Mustafa Çil 11.07.2018 15:33

тост появится, когда вы введете все, кроме 0.

SripadRaj 11.07.2018 15:33

@ Мустафагил, как я могу это сделать? Вы можете мне помочь и прислать мне код

Hock 11.07.2018 15:39
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
3
1 010
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы должны проверить Ссылка на строку, особенно метод подстроки. В вашем случае вы можете использовать такую ​​подстроку:

String twoFirstCharacters = string.substring(0, 2);
if (twoFirstCharacters.equals("09")) {
    // here we go
}
Ответ принят как подходящий

используя начинается с

if (s.startsWith("09")){

или вы можете использовать Спички с регулярным выражением

if (s.matches("09(.*)"))

Используйте метод String.startsWith ()

@Override
public void afterTextChanged(Editable s) {
     if (s!=null&& !s.toString().trim().isEmpty()){ // make sure String value is there
      if (!s.startsWith("09")){ // check string qualifies your requirement 
              Toast.makeText(context, "NOOOOOO", Toast.LENGTH_SHORT).show();
       }
      }
}

Другие вопросы по теме