Определить, является ли строка электронным адресом в формате: <имя пользователя>@<доменное имя> - 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 }

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


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

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

5   голосов , оценка 3.6 из 5
Похожие ответы