Определить, является ли строка электронным адресом в формате: <имя пользователя>@<доменное имя> - C#
Формулировка задачи:
Пользователем вводится строка. Определить, является ли она электронным адресом в формате: <имя пользователя>@<доменное имя>.
Можно весь код пожалуйста
Решение задачи: «Определить, является ли строка электронным адресом в формате: <имя пользователя>@<доменное имя>»
textual
Листинг программы
private static void Main() { Console.WriteLine(IsEmail("test@mail.com")); Console.WriteLine(IsEmail("1test@mail")); Console.WriteLine(IsEmail("test.test@mail.com")); Console.WriteLine(IsEmail("test@mail.")); Console.WriteLine(IsEmail("test@mail..com")); Console.WriteLine(IsEmail("test.@mail.com")); Console.WriteLine(IsEmail("test@test@mail.com")); Console.WriteLine(IsEmail("@mail.com")); Console.WriteLine(IsEmail(".test@mail.com")); } private static bool IsEmail(string email) { var valid = true; var current = TokenCategory.Undefined; var atCount = 0; foreach (char symbol in email) { if (IsDigit(symbol) || IsLetter(symbol)) { current = TokenCategory.Literal; } else if (IsAt(symbol) && current == TokenCategory.Literal) { current = TokenCategory.At; atCount++; } else if (IsDot(symbol) && current == TokenCategory.Literal) { current = TokenCategory.Dot; } else { valid = false; break; } } return valid && current == TokenCategory.Literal && atCount == 1; } private static bool IsDigit(char symbol) => symbol >= '0' && symbol <= '9'; private static bool IsLetter(char symbol) => symbol >= 'a' && symbol <= 'z' || symbol >= 'A' && symbol <= 'Z'; private static bool IsAt(char symbol) => symbol == '@'; private static bool IsDot(char symbol) => symbol == '.'; enum TokenCategory { Undefined, Literal, At, Dot }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д