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