Как проверить, что введенное в EditText значение является буквенно-цифровым или нет? - PullRequest
2 голосов
/ 18 апреля 2010

Мое приложение принимает идентификатор пользователя от пользователя в качестве ввода, идентификатор пользователя буквенно-цифровой, т. Е. Только первый символ (a-z), другая часть числовая. Как я могу проверить ввод этого типа (например, G34555)?

Ответы [ 3 ]

3 голосов
/ 03 августа 2010

http://osdir.com/ml/Android-Developers/2009-11/msg02501.html кажется более приличным решением, оно не позволяет вводить символы, которые не принимаются.

Код по ссылке:

InputFilter filter = new InputFilter() {
    public CharSequence filter(CharSequence source, int start, int end,
    Spanned dest, int dstart, int dend) {
        for (int i = start; i < end; i++) {
            if (!Character.isLetterOrDigit(source.charAt(i))) {
                return "";
            }
        }
        return null;
    }
};

edit.setFilters(new InputFilter[]{filter});
3 голосов
/ 18 апреля 2010

Используйте регулярное выражение. Это должно быть сделано при условии, что первая буква может быть прописной или строчной:

 Pattern p = Pattern.compile("[a-zA-Z][0-9]+");

 Matcher m = p.matcher("some text you want");
 boolean isAlphaNum = m.matches();
0 голосов
/ 19 апреля 2010

Я решил проблему с помощью простой string функции matches

String str="mystring";

str.matches("[a-zA-Z][0-9]+");

...