Advertisement
ivandrofly

Subtitile Edit [RemoveStartEndNoise]

Jan 22nd, 2015
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.71 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             var text = "<i>Ivandro Ismael</i>";
  14.             var stopWatch = System.Diagnostics.Stopwatch.StartNew();
  15.             var first_result = string.Empty;
  16.             for (int i = 0; i < 10000000; i++)
  17.             {
  18.                 first_result = RemoveStartEndNoise1(text);
  19.                 if (i == 0)
  20.                     Console.Write("First result method 1: " + first_result);
  21.             }
  22.             stopWatch.Stop();
  23.             Console.WriteLine(stopWatch.Elapsed);
  24.             stopWatch.Restart();
  25.             stopWatch.Start();
  26.             for (int i = 0; i < 10000000; i++)
  27.             {
  28.                  first_result = RemoveStartEndNoise2(text);
  29.                  if (i == 0)
  30.                      Console.Write("First result method 2: " + first_result);
  31.             }
  32.             stopWatch.Stop();
  33.             Console.WriteLine(stopWatch.Elapsed);
  34.  
  35.             //var result = RemoveStartEndNoise1(text);
  36.             //Console.WriteLine(result);
  37.             Console.ReadKey();
  38.         }
  39.  
  40.         public static string RemoveStartEndNoise1(string text)
  41.         {
  42.             const int i = ('i' | 'I');
  43.             const int b = ('b' | 'B');
  44.             const int u = ('u' | 'U');
  45.  
  46.             string s = text.Trim();
  47.             // <i> <I> | <b> <B> | <u> <U>
  48.             if (text.Length > 3 && text[0] == '<' && text[2] == '>' &&
  49.                 ((text[1] & i) == text[1] || (text[1] & b) == text[1] || (text[1] & u) == text[1]))
  50.             {
  51.                 s = s.Substring(3).TrimStart();
  52.             }
  53.  
  54.             // </i> </I> | </b> </B> | </u> </U>
  55.             int aIdx = s.Length - 4;
  56.             int bIdx = aIdx + 2;
  57.  
  58.             if (s.Length > 4 && s[aIdx + 1] == '/' && s[aIdx] == '<' && s[aIdx + 3] == '>' &&
  59.                  ((s[bIdx] & i) == s[bIdx] || (s[bIdx] & b) == s[bIdx] || (s[bIdx] & u) == s[bIdx]))
  60.                 s = s.Substring(0, s.Length - 4);
  61.  
  62.             if (s.Length > 1 && s[0] == '-')
  63.                 s = s.TrimStart('-');
  64.  
  65.             return s.Trim();
  66.         }
  67.  
  68.         public static string RemoveStartEndNoise2(string text)
  69.         {
  70.             string s = text.Trim();
  71.             if (s.StartsWith("<b>") && s.Length > 3)
  72.                 s = s.Substring(3);
  73.             if (s.StartsWith("<i>") && s.Length > 3)
  74.                 s = s.Substring(3);
  75.             if (s.StartsWith("<u>") && s.Length > 3)
  76.                 s = s.Substring(3);
  77.             if (s.StartsWith("<B>") && s.Length > 3)
  78.                 s = s.Substring(3);
  79.             if (s.StartsWith("<I>") && s.Length > 3)
  80.                 s = s.Substring(3);
  81.             if (s.StartsWith("<U>") && s.Length > 3)
  82.                 s = s.Substring(3);
  83.  
  84.             if (s.EndsWith("</b>") && s.Length > 4)
  85.                 s = s.Substring(0, s.Length - 4);
  86.             if (s.EndsWith("</i>") && s.Length > 4)
  87.                 s = s.Substring(0, s.Length - 4);
  88.             if (s.EndsWith("</u>") && s.Length > 4)
  89.                 s = s.Substring(0, s.Length - 4);
  90.             if (s.EndsWith("</B>") && s.Length > 4)
  91.                 s = s.Substring(0, s.Length - 4);
  92.             if (s.EndsWith("</I>") && s.Length > 4)
  93.                 s = s.Substring(0, s.Length - 4);
  94.             if (s.EndsWith("</U>") && s.Length > 4)
  95.                 s = s.Substring(0, s.Length - 4);
  96.  
  97.             if (s.StartsWith("-") && s.Length > 2)
  98.                 s = s.TrimStart('-');
  99.  
  100.             return s.Trim();
  101.         }
  102.     }
  103. }
  104. // Note: the first method is like 10 second faster than second one...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement