Я пытаюсь установить требования для определенного числа, которое пользователь хочет ввести (pNumber). pNumber должен состоять из 2 букв, затем 6 букв или цифр и, наконец, числа.Как проверить, содержит ли строка только цифры или буквы? Android
Я реализовал метод, который я нашел здесь, в stackoverflow, но когда я ввожу число, например: «LL^&% JJk9« это все равно дает мне положительный результат? в моем понимании .match проверяет, что строка состоит только из заданных значений?
String First = pNumber.substring(0, 2);
String Middle = pNumber.substring(2, 8);
String Last = pNumber.substring(8, 9);
if (First.matches(".*[a-zA-Z].*") && Middle.matches(".*[a-zA-Z0-9].*") && Last.matches(".*[0-9].*")) {
greenOk.setVisibility(View.VISIBLE);
nextBtn.setEnabled(true);
} else {
redCross.setVisibility(View.VISIBLE);
}
Этого должно быть достаточно: это обратный ваш вопрос: http://stackoverflow.com/a/8248352/503508 – Knossos
Кстати, ваш regexes, вероятно, не такие, как вы думаете. Они по существу соответствуют 1. любому символу в первой строке. 2. любой символ/цифра в средней строке. 3. любая цифра в третьей строке. – Knossos
[RegExr] (http://regexr.com/) отлично подходит для обучения и тестирования регулярных выражений. – NonlinearFruit