вставить строку, соответствующую регулярному выражению

#java

#java

Вопрос:

Моя программа принимает строку, введенную пользователем. Если входная строка соответствует регулярному выражению, то ее следует вставить в ArrayList.

Я написал это следующим образом. Но это не работает:

         if( element.matches("[a-zA-Z]"));
        {
        set.add(element);
        }
  

Комментарии:

1. Можете ли вы предоставить больше кода, т. е. определение элемента и набора, а затем предоставить фактический ввод, который не работает?

2. Я помню, что у сертификации JCP был вопрос с той же ошибкой с запятой. Они, конечно, сделали это намеренно, чтобы проверить понимание основ языка.

Ответ №1:

Если ваш код написан именно так, то element всегда будет добавляться к set . Вам нужно удалить ; в конце первой строки, чтобы условие заработало:

 if (element.matches("[a-zA-Z]")) {
    set.add(element);
}
  

Если вы пытаетесь сопоставить больше символов, которые вам, вероятно, нужны "[a-zA-Z] " для выражения.

Комментарии:

1. Чтобы соответствовать одному или нескольким символам, регулярное выражение должно быть "[a-zA-Z] "

Ответ №2:

Я думаю, вы забыли знак, означающий «один или несколько»:

 if (element.matches("[a-zA-Z] ")) {..}
  

(и, конечно, как показывает приведенный выше пример, вы должны избавиться от точки с запятой)