Подтверждение ввода строки не имеет номеров - PullRequest
1 голос
/ 29 октября 2011

Я нашел, как проверить, что ввод является числом, используя try / catch, но как мне проверить, что ввод пользователя только в алфавитном порядке и не содержит цифр?

Ответы [ 3 ]

3 голосов
/ 29 октября 2011

Вы можете использовать простое регулярное выражение:

if (str.matches("[a-zA-Z]+$")) {
   // str consists entirely of letters
}

Обратите внимание, что это работает только с буквами A-Z и a-z. Если вам нужна правильная поддержка Юникода, лучшим способом является циклический перебор символов строки и использование Character.isLetter().

2 голосов
/ 29 октября 2011
public static boolean containsNumbers(String str){
    for(char ch : str.toCharArray()){
        if(Character.isDigit(ch)){
            return true;
        }
    }
    return false;
}
1 голос
/ 29 октября 2011

Одним из способов является использование регулярных выражений.

private static Pattern p = Pattern.compile("^[A-Za-z]+$");

public static boolean match(String s) {
    return p.matcher(s).matches();
}

Еще один способ - перебрать все символы в строке и проверить, алфавитны они или нет.

...