andrew4582

ToSentenceCase

Mar 21st, 2013
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.90 KB | None | 0 0
  1. /// <summary>
  2.         /// Ensures the first character is a capital letter and following characters are lower case. Example: ToSentenceCase("hEllo") = "Hello"
  3.         /// </summary>
  4.         public static string ToSentenceCase(this string s)
  5.         {
  6.             if (s == null)
  7.                 return s;
  8.             if (s.Trim().Length == 0)
  9.                 return s;
  10.  
  11.             var sb = new StringBuilder(s.Length);
  12.             var parts = s.Split(" ".ToCharArray());
  13.  
  14.             for (int i = 0; i < parts.Length; i++)
  15.             {
  16.                 char[] word = parts[i].ToCharArray();
  17.                 if (word.Length == 1)
  18.                 {
  19.                     if (char.IsWhiteSpace(word[0]))
  20.                     {
  21.                         sb.Append(word[0]);
  22.                         continue;
  23.                     }
  24.                 }
  25.                 for (int j = 0; j < word.Length; j++)
  26.                 {
  27.                     if (j == 0)
  28.                         word[j] = char.ToUpperInvariant(word[j]);
  29.                     else
  30.                         word[j] = char.ToLowerInvariant(word[j]);
  31.                 }
  32.                 sb.Append(new string(word));
  33.                 sb.Append(" ");
  34.             }
  35.             return sb.ToString().TrimEnd();
  36.         }
Advertisement
Add Comment
Please, Sign In to add comment