Проверка введенного слова

175
01 февраля 2019, 22:50

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

Scanner scannerName = new Scanner(System.in);
String name = scannerName.next();

Я считываю строки а вот как в java сделать эту проверку не пойму.

Answer 1

Освойте регулярные выражения. В данном случае выражение очень простое - от одного (вам же не нужно пустое имя?) до пяти символов из диапазона a..z.
ideone code

import java.util.regex.Matcher;  
import java.util.regex.Pattern;
    public static void main (String[] args) throws java.lang.Exception
    {
        Scanner scannerName = new Scanner(System.in);
        String name = scannerName.next();
        Pattern p = Pattern.compile("[a-z]{1,5}");  
        Matcher m = p.matcher(name);  
        System.out.println(name);
        System.out.println(m.matches());
  asd12
  false
  asdeee
  false
  asd
  true
 цуке
 false

В данном случае, конечно, можно просто убедиться, что length в пределах 5 и циклом проверить каждый символ из нужного подмножества

   boolean res = (name.length() <= 5) && (name.length() > 0);
   if (res)
        for (int i=0;i<name.length();i++){
            char c = name.charAt(i);
            if (c < 'a' || c > 'z') {
                res = false;
                break;
            }
        }    
    System.out.println(name + " " +  res);

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

READ ALSO
Android адаптивный размер для фото

Android адаптивный размер для фото

Пока делал приложение узнал и проверил на практике утверждение что нужно скачивать фото уже нужного размера для экрана, а не в том размере...

180
Подключение к Google analytics api

Подключение к Google analytics api

Нужно подключиться к GA c помощью JavaВ данный момент нашел один рабочий способ - это создание сервисного аккаунта, далее добавляем сгенеренную...

184
Поиск по коллекции Set

Поиск по коллекции Set

У меня есть объект ролей в котором есть Set названий ролей, я хочу сделать проверку, по наличию у пользователя той или иной ролиПодскажите как...

202
Унаследование в классе

Унаследование в классе

Есть клас унаследованый от веб сокет сервера, выглядит примерно так

221