Программа для обработки адреса электронной почты - C#

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

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

Ребят,может быть у кого-то было подобное задание Разработать программу,которая позволяет ввести адрес электронной почты(например,removed@mail.ru) и выделяет имя пользователя (myemail), имя почтового сервера(postemail) и имя домена первого уровня(com) и выводит эти данные. Предусмотреть работу со следующими доменами перового уровня:com,edu,ru,net,info.Программа должна обрабатывать ошибки: -в именах пользователя и почтового сервера должны быть только алфавитно-цифровые символы; -другие имена доменов первого уровня кроме com,edu,ru,net,info, не допускаются; -отсутствует символ @ в адресе электронной почты; -отсутствует точка между именем почтового сервера и доменом первого уровня;

Решение задачи: «Программа для обработки адреса электронной почты»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication54
{
    class Program
    {
        static void Main()
        {
            var email = new Email(@"myemail@postemail.com");
            Console.WriteLine(email.Name);
            Console.WriteLine(email.ServerName);
            Console.WriteLine(email.DomainName);
            Console.ReadKey();
        }
    }
 
    class Email
    {
        private static readonly HashSet<string> AllowedDomains = new HashSet<string> { "com", "edu", "ru", "net", "info" };
        public readonly string Name, ServerName, DomainName;
 
        public Email(string input)
        {
            if (input.IndexOf('@') < 0)
                throw new ArgumentException("Отсутствует символ @ в адресе электронной почты", input);
            if (input.IndexOf('.') < 0)
                throw new ArgumentException("Отсутствует точка между именем почтового сервера и доменом первого уровня", input);
            var result = Regex.Match(input, @"(.+)@(.+)\.(.+)");
            Name = result.Groups[1].Value;
            ServerName = result.Groups[2].Value;
            DomainName = result.Groups[3].Value;
            if (!Name.All(char.IsLetterOrDigit))
                throw new ArgumentException("В имени пользователя должны быть только алфавитно-цифровые символы");
            if (!ServerName.All(char.IsLetterOrDigit))
                throw new ArgumentException("В имени почтового серера должны быть только алфавитно-цифровые символы");
            if (!AllowedDomains.Contains(DomainName))
                throw new ArgumentException("Неподдерживаемый домен " + DomainName);
        }
        
    }
}

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


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

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

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