перед вставкой в ​​базу данных убедитесь, что текст состоит из трех букв в верхнем регистре, за которыми следуют 5 цифр - PullRequest
0 голосов
/ 30 марта 2012

Мне нужно проверить пользовательский ввод из EditText по шаблону, описанному, прежде чем вставить его в мою базу данных. Если это не совпадает, я хочу вывести сообщение об ошибке для пользователя. Есть ли более простой способ сделать это, чем это:

public boolean myCheckMethod()
{
 String s = myEditText.getText.toString();
 if(s.length!=8)
  return false;
 for(int i=0; i < 8; i++){
  if(i < 3)
   if(!(Character.isLetter(s.charAt(i)) && Character.isUpperCase(s.charAt(i)))
    return false;
  if(i > 3)
   if(!Character.isDigit(s.charAt(i)))
    return false;
 }

 return true;
}

Должен быть лучший способ сделать это !!

Ответы [ 3 ]

0 голосов
/ 30 марта 2012

Ваш подход не является необоснованным.Вы также можете проверить с помощью регулярного выражения.Может быть, что-то вроде [A-Z]{3}[0-9]{5}.Однако могут быть проблемы с необычными символами на неанглийских языках.Не уверен, имеет ли это значение в вашем случае.

0 голосов
/ 30 марта 2012

REGEX это путь.Взгляните на этот ответ.Не совсем ваш случай, но хорошие объяснения.

Это поможет

[AZ] {3} [0-9] {4} - один из возможных шаблонов, но, как и в случае свсе вещи, regex, кто-то еще ответит с лучшим шаблоном;)

Но вы поняли ...

Приветствия

PS Извините за парней, к тому времениЯ нажал кнопку, я был в куче ...

0 голосов
/ 30 марта 2012

Есть:

if(s.matches("[A-Z]{3}[0-9]{5}"))
  return true;
return false;

Затем используйте этот метод в операторе if при добавлении в базу данных:

if(myCheckMethod())
{
  //code to add to db here
}
else
  Toast
    .makeText(this, "User error",Toast.LENGTH_LONG)
    .show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...