我正在尝试将句子中的第一个单词大写。这是我的代码,但它没有起作用。
可能是重复问题:
如何在C#中使首字母大写
char.ToUpper(sentence[0]) + sentence.Substring(1)
我正在尝试将句子中的第一个单词大写。这是我的代码,但它没有起作用。
可能是重复问题:
如何在C#中使首字母大写
char.ToUpper(sentence[0]) + sentence.Substring(1)
JaredPar的解决方案是正确的,但我也想指向TextInfo类。ToTitleCase()将大写第一个字母,并将其余转换为小写。
string s = "heLLo";
var t = new CultureInfo("en-US", false).TextInfo;
s = t.ToTitleCase(s); // Prints "Hello"
CultureInfo.CurrentCulture.TextInfo.ToTitleCase(s)
来实现,无需创建新的 CultureInfo。该方法可将字符串 s 转换为标题大小写形式,且不改变原始文本的含义。 - Blorgbeard看起来你只是想将一个字符串的首字母大写。如果是这样,那么你的代码就很好,但你需要将新字符串赋值回到sentence变量中。
sentence = char.ToUpper(sentence[0]) + sentence.Substring(1)
.NET中的string
是不可变的,因此每个更改string
的操作都会产生一个新值。它不会直接更改原始值。所以为了看到改变的结果,你必须将其赋值给一个变量。
sentence
的?上面的代码应该可以正常工作,所以问题可能出在结果的使用上。 - JaredPar
sentence = sentence.Trim();
。第一个字母前可能有一个空格。 - user1934286