字符串c#中的第一个字母大写

时间:2015-01-21 16:21:06

标签: c# uppercase letter

我正在尝试将字符串的第一个字母更改为大写

我在这方面看到了其他问题,但即使我申请了他们所说的,我仍然无法管理正确的结果。

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

有什么想法吗?

4 个答案:

答案 0 :(得分:6)

您需要分配结果(并使用正确的方法名称)

label1.Text = FirstLetterToUpper("test text");

答案 1 :(得分:1)

您没有使用FirstLetterToUpper方法的返回值。试试这个:

private void button1_Click(object sender, EventArgs e)
{
    label1.Text = "test text";
    label1.Text = FirstLetterToUpper(label1.Text);        
}

答案 2 :(得分:0)

我不确定这是基于网络还是基于桌面的应用程序。但是,我认为你的问题源于减速不佳。例如,您的标签具有适当的值,但您不能重新分配该值。

label1.Text = CapitalizeFirstLetter(label1.Text);

它不起作用的原因是因为您没有更改标签的值,请将其保留为:test text。这就是您的问题发生的原因。

但是,您可以通过执行以下操作使其更具可读性:

label1.Text = CapitalizeFirstLetter("text text");

答案 3 :(得分:0)

其他答案解释了您的错误(您需要将您的方法获得的值重新分配给您的标签),但您也可以更改大写使用内置方法的代码

string[] words = label1.Text.Split();
words[0] = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(words[0]);
label1.Text = string.Join(" ", words);

这对全球化问题更具弹性。