代码之家  ›  专栏  ›  技术社区  ›  Greg

改进字符串骆驼化方法[重复]

c#
  •  3
  • Greg  · 技术社区  · 15 年前

    可能重复:
    Converting string in C#

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

    • 零件/附件->零件/附件
    • 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个字符? 谢谢

    1 回复  |  直到 15 年前
        1
  •  14
  •   BFree    15 年前

    怎么样:

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