Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 拆分和联接问题_C#_For Loop - Fatal编程技术网

C# 拆分和联接问题

C# 拆分和联接问题,c#,for-loop,C#,For Loop,我把它们分开,让第一个字母是大写的,现在我在合并它们时遇到了问题,第一个字母仍然是大写的。我的数据也来自数据库 private void button1_Click(object sender, EventArgs e) { //input = input.Replace("_", ""); string input; input = table_menu.Text; string[] words = inp

我把它们分开,让第一个字母是大写的,现在我在合并它们时遇到了问题,第一个字母仍然是大写的。我的数据也来自数据库

        private void button1_Click(object sender, EventArgs e)
    {
        //input = input.Replace("_", "");
        string input;
        input = table_menu.Text;
        string[] words = input.Split('_');

        foreach (string word in words)
        {
            string nword = word.First().ToString().ToUpper() + String.Join("", word.Skip(1));
            string merge = String.Join("", nword);
            MessageBox.Show(merge);
        }

        label1.Text = input.First().ToString().ToUpper() + String.Join("", input.Skip(1));
        Console.WriteLine(label1.Text);       
    }
当前输出:病人

我想要一个像这样的世界:

病人


资本化的概念是特定于文化的——一种文化中的资本化可能与另一种文化中的资本化不同。如果要将字符串序列化为XML以进行持久存储,可能需要使用;如果您正在向用户显示它们,那么(或者可能是)是合适的

也就是说,可能要做这项工作:

        public static string UnderscoreToTitleCase(string input)
        {
            return UnderscoreToTitleCase(input, System.Globalization.CultureInfo.CurrentCulture);
        }

        public static string UnderscoreToTitleCaseInvariant(string input)
        {
            return UnderscoreToTitleCase(input, System.Globalization.CultureInfo.InvariantCulture);
        }

        public static string UnderscoreToTitleCase(string input, CultureInfo cultureInfo)
        {
            string[] words = input.Split('_');

            StringBuilder sb = new StringBuilder();

            foreach (string word in words)
                sb.Append(cultureInfo.TextInfo.ToTitleCase(word));
            return (sb.ToString());
        }
这项工作:

var input = "table_patient";

var output = String.Join("",
    input
        .Split('_')
        .Where(x => !String.IsNullOrEmpty(x))
        .Select(x => new string(
            x
                .Take(1)
                .Select(c => char.ToUpperInvariant(c))
                .Concat(x.Skip(1))
                .ToArray())));

//output == "TablePatient"
这也适用于:

var output = System
    .Globalization
    .CultureInfo
    .CurrentCulture
    .TextInfo
    .ToTitleCase(input)
    .Replace("_", "");

您正在用空格替换所有的
\uu
,有效地删除它们(注释的第一行)。在调试器中检查您的
单词
字符串[];我猜它应该只包含一个元素。很好。。。CultureInfo.TextInfo.ToTitleCase。。。一个人总是忘记最简单的事情:)
var output = System
    .Globalization
    .CultureInfo
    .CurrentCulture
    .TextInfo
    .ToTitleCase(input)
    .Replace("_", "");