Advertisement
Guest User

TextTransformer

a guest
Oct 9th, 2015
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.39 KB | None | 0 0
  1. using System;
  2. using System.Text;
  3. using System.Text.RegularExpressions;
  4.  
  5. namespace TextTransformer
  6. {
  7.     class TextTransformer
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             string input = Console.ReadLine();
  12.             StringBuilder message = new StringBuilder();
  13.  
  14.             while (input != "burp")
  15.             {
  16.                 message.Append(input);
  17.                 input = Console.ReadLine();
  18.             }
  19.  
  20.             string newMessage = Regex.Replace(message.ToString(), @"\s+", " ");
  21.  
  22.             StringBuilder output = new StringBuilder();
  23.  
  24.             //Regex dollarRegex = new Regex(@"\$(.*?)\$");
  25.             //Regex percentdRegex = new Regex(@"\%(.*?)\%");
  26.             //Regex ampersandRegex = new Regex(@"\&(.*?)\&");
  27.             //Regex quoteRegex = new Regex(@"\'(.*?)\'");
  28.  
  29.             for (int i = 0; i < newMessage.Length; i++)
  30.             {
  31.                 char current = newMessage[i];
  32.  
  33.                 switch (current)
  34.                 {
  35.                     case '$' :
  36.                     {
  37.                         int count = 0;
  38.                         string currentMessage = "";
  39.                         for (int j = i + 1; j < newMessage.Length; j++)
  40.                         {
  41.                             char curr = newMessage[j];
  42.                             if (curr == '$')
  43.                             {
  44.                                 if (currentMessage != String.Empty)
  45.                                 {
  46.                                     output.Append(currentMessage);
  47.                                     output.Append(" ");
  48.                                    
  49.                                 }
  50.                                 i += count + 1;
  51.                                 break;
  52.                             }
  53.                             if (count % 2 == 0)
  54.                             {
  55.                                 curr = (char)(curr + 1);
  56.                             }
  57.                             else
  58.                             {
  59.                                 curr = (char)(curr - 1);
  60.                             }
  61.                             count++;
  62.                            
  63.                            currentMessage += curr;
  64.                            
  65.                         }
  66.                    
  67.                     }
  68.                         break;
  69.                     case '%':
  70.                     {
  71.                         int count = 0;
  72.                         string currentMessage = "";
  73.                         for (int j = i + 1; j < newMessage.Length; j++)
  74.                         {
  75.                             char curr = newMessage[j];
  76.                             if (curr == '%')
  77.                             {
  78.                                 if (currentMessage != String.Empty)
  79.                                 {
  80.                                     output.Append(currentMessage);
  81.                                     output.Append(" ");
  82.                                 }
  83.                                 i += count + 1;
  84.                                 break;
  85.                             }
  86.                             if (count % 2 == 0)
  87.                             {
  88.                                 curr = (char)(curr + 2);
  89.                             }
  90.                             else
  91.                             {
  92.                                 curr = (char)(curr - 2);
  93.                             }
  94.                             count++;
  95.                            
  96.                             currentMessage += curr;
  97.                            
  98.                         }
  99.                        
  100.                        
  101.                     }
  102.                         break;
  103.                     case '&':
  104.                     {
  105.                         int count = 0;
  106.                         string currentMessage = "";
  107.                         for (int j = i + 1; j < newMessage.Length; j++)
  108.                         {
  109.                             char curr = newMessage[j];
  110.                             if (curr == '&')
  111.                             {
  112.                                 if (currentMessage != String.Empty)
  113.                                 {
  114.                                     output.Append(currentMessage);
  115.                                     output.Append(" ");
  116.                                 }
  117.                                 i += count + 1;
  118.                                 break;
  119.                             }
  120.                             if (count % 2 == 0)
  121.                             {
  122.                                 curr = (char)(curr + 3);
  123.                             }
  124.                             else
  125.                             {
  126.                                 curr = (char)(curr - 3);
  127.                             }
  128.                             count++;
  129.                            
  130.                              currentMessage += curr;
  131.                            
  132.                         }
  133.                        
  134.                     }
  135.                         break;
  136.                     case '\'' :
  137.                     {
  138.                         int count = 0;
  139.                         string currentMessage = "";
  140.                         for (int j = i + 1; j < newMessage.Length; j++)
  141.                         {
  142.                             char curr = newMessage[j];
  143.                             if (curr == '\'')
  144.                             {
  145.                                 if (currentMessage != String.Empty)
  146.                                 {
  147.                                     output.Append(currentMessage);
  148.                                     output.Append(" ");
  149.                                 }
  150.                                 i += count + 1;
  151.                                 break;
  152.                             }
  153.                             if (count%2 == 0)
  154.                             {
  155.                                 curr = (char)(curr + 4);
  156.                             }
  157.                             else
  158.                             {
  159.                                 curr = (char)(curr - 4);
  160.                             }
  161.                             count++;
  162.                            
  163.                             currentMessage += curr;
  164.                            
  165.                         }
  166.                     }
  167.                         break;
  168.                 }
  169.             }
  170.  
  171.             Console.WriteLine(output.ToString());
  172.  
  173.         }
  174.     }
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement