Showing posts with label CSharp String Operation. Show all posts
Showing posts with label CSharp String Operation. Show all posts

Saturday, March 24, 2012

String converted to character arrays is fast then normal string operation

Make a string operation using for loop to string length is costly on performance bases compare to convert it to character array and make string operation on that array
static void Main(string[] args)
       {
           Stopwatch sp = new Stopwatch();
           sp.Start();
           string output = string.Empty;
           string myStr = "http://kirtimdarji.blogspot.com";
           output = Program.ArrCapitalizeVowels(myStr);
           Console.Write(string.Format("Time Elaspeds:{0} output:{1}\n", sp.Elapsed, output));
           sp.Reset();
           sp.Start();
           output = Program.CapitalizeVowels(myStr);
           Console.Write(string.Format("Time Elaspeds:{0} output:{1}\n", sp.Elapsed, output));
           Console.ReadKey();
       }
       private static string CapitalizeVowels(string input)
       {
           if (string.IsNullOrEmpty(input)) //since a string is a class object, it could be null
               return string.Empty;
           else
           {
               string output = string.Empty;

               for (int i = 0; i < input.Length; i++)
               {
                   if (input[i] == 'a' || input[i] == 'e' ||
                       input[i] == 'i' || input[i] == 'o' ||
                       input[i] == 'u')
                       output += input[i].ToString().ToUpper(); //Vowel
                   else
                       output += input[i].ToString().ToLower(); //Not vowel
               }

               return output;
           }
       }
       public static string ArrCapitalizeVowels(string input)
       {
           if (string.IsNullOrEmpty(input)) //since a string is a class object, it could be null
               return string.Empty;
           else
           {
               char[] charArray = input.ToCharArray();

               for (int i = 0; i < charArray.Length; i++)
               {
                   if (charArray[i] == 'a' || charArray[i] == 'e' ||
                       charArray[i] == 'i' || charArray[i] == 'o' ||
                       charArray[i] == 'u')
                       charArray[i] = char.ToUpper(charArray[i]); //Vowel
                   else
                       charArray[i] = char.ToLower(charArray[i]); //Not vowel
               }

               return new string(charArray);
           }
       }
Output :
ArrCapitalizeVowels Method  
Time Elaspeds:00:00:00.0007757 output:http://kIrtImdArjI.blOgspOt.cOm
CapitalizeVowels  Method
Time Elaspeds:00:00:00.0008297 output:http://kIrtImdArjI.blOgspOt.cOm

Thank You for reading stay turned for more!!

Kirti Darji