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