MiroslavKisov

HornetComm

Nov 25th, 2017
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.12 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text.RegularExpressions;
  4.  
  5. namespace _03.HornetComm
  6. {
  7.     public class StartUp
  8.     {
  9.         public static void Main()
  10.         {
  11.             string messagePattern = @"(^[0-9]+) <-> ([A-Za-z0-9]+$)";
  12.             string broadcastPattern = @"(^\D+) <-> ([A-Za-z0-9]+$)";
  13.  
  14.             Regex regexMessage = new Regex(messagePattern);
  15.             Regex regexBroadcast = new Regex(broadcastPattern);
  16.  
  17.             List<string> messages = new List<string>();
  18.             List<string> broadcasts = new List<string>();
  19.  
  20.             while (true)
  21.             {
  22.                 string inputMessage = Console.ReadLine();
  23.                 if (inputMessage == "Hornet is Green")
  24.                 {
  25.                     break;
  26.                 }
  27.                 Match matchMessage = regexMessage.Match(inputMessage);
  28.                 Match matchBroadcast = regexBroadcast.Match(inputMessage);
  29.  
  30.                 if (matchMessage.Success)
  31.                 {
  32.                     string recipientsCode = matchMessage.Groups[1].ToString();
  33.                     string message = matchMessage.Groups[2].ToString();
  34.                     char[] reversedRecipient = recipientsCode.ToCharArray();
  35.                     Array.Reverse(reversedRecipient);
  36.                     string recipientsCodeReversed = new string(reversedRecipient);
  37.                     messages.Add(recipientsCodeReversed + " -> " + message);
  38.                 }
  39.                 else if (matchBroadcast.Success)
  40.                 {
  41.                     string message = matchBroadcast.Groups[1].ToString();
  42.                     string frequency = matchBroadcast.Groups[2].ToString();
  43.                     char[] frequencyToArr = frequency.ToCharArray();
  44.  
  45.                     for (int i = 0; i < frequencyToArr.Length; i++)
  46.                     {
  47.                         if (Char.IsUpper(frequencyToArr[i]))
  48.                         {
  49.                             frequencyToArr[i] = Char.ToLower(frequencyToArr[i]);
  50.                         }
  51.                         else if (Char.IsLower(frequencyToArr[i]))
  52.                         {
  53.                             frequencyToArr[i] = Char.ToUpper(frequencyToArr[i]);
  54.                         }
  55.                     }
  56.  
  57.                     string frequencyChanged = new string(frequencyToArr);
  58.                     broadcasts.Add(frequencyChanged + " -> " + message);
  59.                 }
  60.             }
  61.             Console.WriteLine("Broadcasts:");
  62.             if (broadcasts.Count > 0)
  63.             {
  64.                 foreach (var broadcast in broadcasts)
  65.                 {
  66.                     Console.WriteLine(broadcast);
  67.                 }
  68.             }
  69.             else
  70.             {
  71.                 Console.WriteLine("None");
  72.             }
  73.             Console.WriteLine("Messages:");
  74.             if (messages.Count > 0)
  75.             {
  76.                 foreach (var message in messages)
  77.                 {
  78.                     Console.WriteLine(message);
  79.                 }
  80.             }
  81.             else
  82.             {
  83.                 Console.WriteLine("None");
  84.             }
  85.         }
  86.     }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment