Определить, является ли строка электронным адресом в формате: <имя пользователя>@<доменное имя> - C#

Узнай цену своей работы

Формулировка задачи:

Пользователем вводится строка. Определить, является ли она электронным адресом в формате: <имя пользователя>@<доменное имя>. Можно весь код пожалуйста

Решение задачи: «Определить, является ли строка электронным адресом в формате: <имя пользователя>@<доменное имя>»

textual
Листинг программы
  1. private static void Main()
  2. {
  3.     Console.WriteLine(IsEmail("test@mail.com"));
  4.     Console.WriteLine(IsEmail("1test@mail"));
  5.     Console.WriteLine(IsEmail("test.test@mail.com"));
  6.     Console.WriteLine(IsEmail("test@mail."));
  7.     Console.WriteLine(IsEmail("test@mail..com"));
  8.     Console.WriteLine(IsEmail("test.@mail.com"));
  9.     Console.WriteLine(IsEmail("test@test@mail.com"));
  10.     Console.WriteLine(IsEmail("@mail.com"));
  11.     Console.WriteLine(IsEmail(".test@mail.com"));
  12. }
  13.  
  14. private static bool IsEmail(string email)
  15. {
  16.     var valid = true;
  17.     var current = TokenCategory.Undefined;
  18.     var atCount = 0;
  19.     foreach (char symbol in email)
  20.     {
  21.         if (IsDigit(symbol) || IsLetter(symbol))
  22.         {
  23.             current = TokenCategory.Literal;
  24.         }
  25.         else if (IsAt(symbol) && current == TokenCategory.Literal)
  26.         {
  27.             current = TokenCategory.At;
  28.             atCount++;
  29.         }
  30.         else if (IsDot(symbol) && current == TokenCategory.Literal)
  31.         {
  32.             current = TokenCategory.Dot;
  33.         }
  34.         else
  35.         {
  36.             valid = false;
  37.             break;
  38.         }
  39.     }
  40.     return valid && current == TokenCategory.Literal && atCount == 1;
  41. }
  42.  
  43. private static bool IsDigit(char symbol) => symbol >= '0' && symbol <= '9';
  44. private static bool IsLetter(char symbol) => symbol >= 'a' && symbol <= 'z' || symbol >= 'A' && symbol <= 'Z';
  45. private static bool IsAt(char symbol) => symbol == '@';
  46. private static bool IsDot(char symbol) => symbol == '.';
  47.  
  48. enum TokenCategory { Undefined, Literal, At, Dot }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы