繁体   English   中英

字符串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方法的返回值。 尝试这个:

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);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM