2010-06-24 67 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