Определить, является ли строка электронным адресом в формате: <имя пользователя>@<доменное имя> - 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 }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д