#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] ")) {..}
(и, конечно, как показывает приведенный выше пример, вы должны избавиться от точки с запятой)