将"驼峰大小写"类型文本转换为中间有空格的文本的功能?即:HelloWorld - > Hello World

tbo*_*one 2 vb.net asp.net

任何人都知道一个可以转换的高效函数,例如:
HelloWorld - > Hello World
helloWorld - > Hello World
Hello_World - > Hello World
hello_World - > Hello World

能够处理所有这些情况会很好.

最好是在VB.Net或C#中.

Jav*_*ier 7

我不知道这是否是最有效的方式.但这种方法很好:

编辑1:我在评论中包含了Char.IsUpper建议

编辑2:在评论中包含另一个建议:ToCharArray是多余的,因为字符串也将枚举操作作为char实现,即foreach(输入中的char字符)

编辑3:我使用过StringBuilder,就像@Dan评论的那样.

    public string CamelCaseToTextWithSpaces(string input)
    {


        StringBuilder output = new StringBuilder();

        input = input.Replace("_", "");

        foreach (char character in input)
        {
            if (char.IsUpper(character))
            { 
                output.Append(' ');             
            }

            if (output.Length == 0)
            {
                // The first letter must be always UpperCase
                output.Append(Char.ToUpper(character));
            }
            else
            {
                output.Append(character);
            }                
        }

        return output.ToString().Trim();
    }
Run Code Online (Sandbox Code Playgroud)