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("_", "");