2010-06-24 69 views
3

可能重复:
Converting string in C#提高串骆驼源化方法

我想 “camelize” 的字符串,例如:

  • PARTS/ACESSORIES - >件/配件
  • HELLO WORLD/TEST - > Hello World/Test
  • 的Hello World - >的Hello World

这是我到目前为止有:

public static string Camelize(this string str) 
    { 
     if (String.IsNullOrEmpty(str)) return ""; 

     var sb = new StringBuilder(); 
     char[] chars = str.ToLower().ToCharArray(); 
     bool upper = true;    
     // ' ', '-', '.', '/' 
     for (int i = 0; i < chars.Length; ++i) 
     { 
      char c = chars[i]; 
      if (i == 0 || //First char 
       chars[i - 1] == ' ' || 
       chars[i - 1] == '-' || 
       chars[i - 1] == '.' || 
       chars[i - 1] == '/' 
       ) upper = true; 

      if (upper)    
       sb.Append(Char.ToUpper(c));     
      else     
       sb.Append(c); 

      upper = false; 
     } 
     return sb.ToString(); 
    } 

有什么办法改善这种方法,我也知道,字符串将不超过250个字符? 感谢

+2

你的方法名不副实:字符串不是骆驼,它会转换为标题情况。 – LukeH 2010-06-24 22:09:57

回答

14

如何:

public static string Camelize(string text) 
    { 
     return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text.ToLower()); 
    } 
+6

+1这就是为什么我喜欢SO,找到这些可爱的宝石。 – 2010-06-24 21:57:33

+0

非常酷,谢谢。 – Greg 2010-06-24 22:11:02

+0

+1,我总是忘记这个方法存在... – 2010-06-24 23:11:41