Я пытаюсь сделать базовый c проект для класса, но я столкнулся с проблемой. При проверке кода он работает, когда введено «test@test.com». Тем не менее, при дальнейшем тестировании и введении ввода "test@test.com.com" он все равно возвращает действительный. Вот код:
System.out.println("Enter a valid email address: ");
Scanner scan = new Scanner(System.in);
emailAddress = scan.next();
String email_regex = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
testString = emailAddress;
b = testString.matches(email_regex);
if (b)
{
System.out.println("The email address \"" + emailAddress + "\" is valid.");
}
else
{
System.out.println("The email address \"" + emailAddress + "\" IS NOT valid.");
}
} while (!b);
Он работает так, как и предполагалось, за исключением того, что помечен как "test@test.com.com" или любой другой подобный формат электронной почты как недействительный. Предложения будут оценены!
РЕДАКТИРОВАТЬ: Я добавлю инструкции и полученные отзывы.
Инструкции: адрес электронной почты содержит символ @. Напишите программу, которая запрашивает ввод адреса электронной почты от пользователя и определяет, является ли он действительным адресом или нет. Это основано на наличии символа @ и пробелов в строке. Вам не нужно беспокоиться о любых других символах во входном слове. Выведите результат «Слово ЕСТЬ адрес электронной почты» или «Слово НЕ ЯВЛЯЕТСЯ адресом электронной почты»
Пример - Ввод: testuser@mydomain.com Вывод: Слово является адресом электронной почты
Ввод: Вывод my123user: Слово НЕ является адресом электронной почты
Мой отзыв:
Программа неправильно определяет test@test.com.com как действительный адрес электронной почты. Код не отформатирован должным образом, а отступ неправильный. Убедитесь, что ваш код имеет правильные отступы для каждого нового набора фигурных скобок (который указывает область действия).