如何将c#中字符串中每个单词的第一个字母大写

时间:2016-04-19 15:09:34

标签: c# string asp.net-mvc-5 char

我已经尝试过研究'可能已经有你答案的问题',但由于大多数问题涉及不同的编程语言,所以他们都没有真正帮助过。

所以关于C#,特别是ASP.NET MVC,在我的 Create 动作中我有代码来大写字符串中第一个单词的第一个字符,但如果用户输入2个单词,第二个单词的第一个字符保持小写。

以下是我目前在控制器

中的内容
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,text,subcategory")] Activities codeAC)
{
    if (ModelState.IsValid)
    {
        char firstLetter = codeAC.text[0];

        if (char.IsLower(firstLetter))
        {
            codeAC.text = codeAC.text.First().ToString().ToUpper() + String.Join("", codeAC.text.Skip(1));
        }

如何修改此项,以便用户输入'test test2'时,保存到数据库中的结果将是'Test Test2',而不是'测试2'

感谢任何帮助。

1 个答案:

答案 0 :(得分:8)

这将对您有所帮助:

 string inString = "test test2 test test2 test test2";
 TextInfo cultInfo = new CultureInfo("en-US", false).TextInfo;
 string output = cultInfo.ToTitleCase(inString);
 // Test Test2 Test Test2 Test Test2

其中CultureInfo属于System.Globalization

注意cultInfo.ToTitleCase("some value");仅适用于包含所有小写字母的句子,请考虑一个示例:input"this will be an EXAMPLE"然后上面的代码会将其转换为"This Will Be An EXAMPLE"。这意味着EXAMPLE仍然是资本。所以我们需要做的是,在执行此操作之前将整个字符串变为小写。所以输入将如下所示:

 string inString = "test test2 test test2 test test2";