【发布时间】:2011-02-21 23:52:55
【问题描述】:
public static string CapitalizeEachWord(this string sentence)
{
string[] words = sentence.Split();
foreach (string word in words)
{
word[0] = ((string)word[0]).ToUpper();
}
}
我正在尝试为我正在尝试为自己为未来项目创建的帮助程序类创建扩展方法。
这一项应该适当地大写每个单词。意思是,每个单词的第一个字母都应该大写。我无法让它工作。
它说我无法将 char 转换为字符串,但我记得在某些时候能够做到这一点。也许我忘记了一个关键部分。
感谢您的建议。
【问题讨论】:
-
@ChrisF:我不认为这是这个问题的重复。在另一个问题中,它询问是否将每个句子的第一个单词大写。在这里,我想将每个单词的第一个字母大写。由于我可以 .Split() 句子,我不需要正则表达式,但我的尝试没有奏效 - 因此问题。
-
@Thomas - 我的错。那么stackoverflow.com/questions/880597/… 怎么样?它与语言无关,但有一个 c# 解决方案。
-
其他人已经回答了您的问题,但这里有一些建议。首先,您不能将
char转换为string,但myChar.ToString()可以。其次,字符串是不可变的。您不能重新分配字符串中的任意字符(要这样做,请使用string.ToCharArray(),使用char数组,然后在该数组上调用new string()。 -
@Sapph:为什么 (string) 不起作用,但 ToString() 起作用? .ToString() 有什么不同?