字符串c#中的首字母大写
First letter capital in string c#
我正在尝试将字符串的第一个字母改为大写
我看到了其他关于此的问题,但即使我应用了他们所说的内容,我仍然无法获得正确的结果。
public string FirstLetterToUpper(string str)
{
if (str == null)
return null;
if (str.Length > 1)
return char.ToUpper(str[0]) + str.Substring(1);
return str.ToUpper();
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "test text";
CapitalizeFirstLetter(label1.Text);
}
而不是输出
Test text
它仍然存在
test text
有什么想法吗?
您需要分配结果(并使用正确的方法名称)
label1.Text = FirstLetterToUpper("test text");
您没有使用 FirstLetterToUpper
方法的 return 值。试试这个:
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "test text";
label1.Text = FirstLetterToUpper(label1.Text);
}
我不确定这是基于 Web 还是基于桌面的应用程序。但是,我认为您的问题源于减速不佳。例如,您的标签具有正确的值,但您没有重新分配该值。
label1.Text = CapitalizeFirstLetter(label1.Text);
它不起作用的原因是因为您没有更改标签的值,您将其保留为:test text
。这就是你的问题发生的原因。
但是,您可以通过以下方式使其更具可读性:
label1.Text = CapitalizeFirstLetter("text text");
其他答案解释了你的错误(你需要将你的方法获得的值重新分配给你的标签),但你也可以更改大写的代码以使用内置方法
string[] words = label1.Text.Split();
words[0] = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(words[0]);
label1.Text = string.Join(" ", words);
这对全球化问题更有弹性。
我正在尝试将字符串的第一个字母改为大写
我看到了其他关于此的问题,但即使我应用了他们所说的内容,我仍然无法获得正确的结果。
public string FirstLetterToUpper(string str)
{
if (str == null)
return null;
if (str.Length > 1)
return char.ToUpper(str[0]) + str.Substring(1);
return str.ToUpper();
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "test text";
CapitalizeFirstLetter(label1.Text);
}
而不是输出
Test text
它仍然存在
test text
有什么想法吗?
您需要分配结果(并使用正确的方法名称)
label1.Text = FirstLetterToUpper("test text");
您没有使用 FirstLetterToUpper
方法的 return 值。试试这个:
private void button1_Click(object sender, EventArgs e)
{
label1.Text = "test text";
label1.Text = FirstLetterToUpper(label1.Text);
}
我不确定这是基于 Web 还是基于桌面的应用程序。但是,我认为您的问题源于减速不佳。例如,您的标签具有正确的值,但您没有重新分配该值。
label1.Text = CapitalizeFirstLetter(label1.Text);
它不起作用的原因是因为您没有更改标签的值,您将其保留为:test text
。这就是你的问题发生的原因。
但是,您可以通过以下方式使其更具可读性:
label1.Text = CapitalizeFirstLetter("text text");
其他答案解释了你的错误(你需要将你的方法获得的值重新分配给你的标签),但你也可以更改大写的代码以使用内置方法
string[] words = label1.Text.Split();
words[0] = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(words[0]);
label1.Text = string.Join(" ", words);
这对全球化问题更有弹性。