105 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Text;
 | |
| 
 | |
| namespace DevComponents.DotNetBar
 | |
| {
 | |
| #if FRAMEWORK20
 | |
|     internal static class StringHelper
 | |
| #else
 | |
| 	internal class StringHelper
 | |
| #endif
 | |
|     {
 | |
|         internal static string Capitalize(string s)
 | |
|         {
 | |
|             if (s.Length > 1)
 | |
|                 return s.Substring(0, 1).ToUpper() + s.Substring(1);
 | |
|             return s;
 | |
|         }
 | |
| 
 | |
|         internal static string GetFriendlyName(string fieldName)
 | |
|         {
 | |
|             fieldName = fieldName.Replace('_', ' ');
 | |
| #if FRAMEWORK20
 | |
|             if (fieldName.Contains(" "))
 | |
| #else
 | |
| 			if (fieldName.IndexOf(" ") >= 0)
 | |
| #endif
 | |
|             {
 | |
|                 string[] words = fieldName.Split(' ');
 | |
|                 StringBuilder builder = new StringBuilder(fieldName.Length);
 | |
|                 for (int i = 0; i < words.Length; i++)
 | |
|                 {
 | |
|                     builder.Append(Capitalize(words[i]));
 | |
|                     if (i < words.Length - 1)
 | |
|                         builder.Append(' ');
 | |
|                 }
 | |
|                 return builder.ToString();
 | |
|             }
 | |
|             else if (fieldName.Length > 2)
 | |
|             {
 | |
|                 bool hadUpperCase = false;
 | |
|                 int lastUpperCaseIndex = -1;
 | |
|                 StringBuilder builder = new StringBuilder(fieldName.Length + 10);
 | |
|                 for (int i = 0; i < fieldName.Length; i++)
 | |
|                 {
 | |
|                     if (IsUpperCase(fieldName[i]))
 | |
|                     {
 | |
|                         if (hadUpperCase && i - lastUpperCaseIndex > 1)
 | |
|                         {
 | |
|                             builder.Append(' ');
 | |
|                             builder.Append(fieldName[i]);
 | |
|                             lastUpperCaseIndex = i;
 | |
|                         }
 | |
|                         else if (!hadUpperCase)
 | |
|                         {
 | |
|                             lastUpperCaseIndex = i;
 | |
|                             hadUpperCase = true;
 | |
|                             if (i > 0) builder.Append(' ');
 | |
|                             builder.Append(fieldName[i]);
 | |
|                         }
 | |
|                         else
 | |
|                         {
 | |
|                             lastUpperCaseIndex = i;
 | |
|                             builder.Append(fieldName[i].ToString().ToLower());
 | |
|                             hadUpperCase = true;
 | |
|                         }
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         if (hadUpperCase)
 | |
|                             builder.Append(fieldName[i]);
 | |
|                         else
 | |
|                         {
 | |
|                             builder.Append(fieldName[i].ToString().ToUpper());
 | |
|                             hadUpperCase = true;
 | |
|                             lastUpperCaseIndex = i;
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
| 
 | |
|                 return builder.ToString();
 | |
|             }
 | |
| 
 | |
|             return fieldName;
 | |
|         }
 | |
| 
 | |
|         internal static bool IsUpperCase(char c)
 | |
|         {
 | |
|             return IsUpperCase(c.ToString());
 | |
|         }
 | |
| 
 | |
|         internal static bool IsUpperCase(string s)
 | |
|         {
 | |
|             return s.ToUpper() == s;
 | |
|         }
 | |
| 
 | |
|         internal static string Repeat(char repeatCharacter, int count)
 | |
|         {
 | |
|             StringBuilder builder = new StringBuilder();
 | |
|             builder.Append(repeatCharacter, count);
 | |
|             
 | |
|             return builder.ToString();
 | |
|         }
 | |
|     }
 | |
| }
 |