c#中Title case的处理问题

本文关键字:处理问题 case Title | 更新日期: 2023-09-27 18:05:48

我有一个要求,在一个字符串中的每个单词都应该转换为标题大小写,但我的确切转换如下:

我现在的代码如下:

row[col.ColumnName] = CultureInfo.InvariantCulture.TextInfo.ToTitleCase(Convert.ToString(row[col.ColumnName]).ToLower());

将"战争与和平"转换为"战争与和平",但我的要求是"战争与和平",其中

目前ToTitleCase函数没有帮助。

请给我提出一个可能的解决方案。

谢谢。

c#中Title case的处理问题

我认为最简单的事情是编写一个函数来扫描传递的字符串以连接单词(and, or, of),并将其他所有内容大写。我不知道在。net中有什么东西可以处理它。

写得很快,有点脏,但是可以工作。

using System;
using System.Globalization;
class theclass
{
static void Main()
{
    string str1 = "war and peace";
    string str2 = "mr. popper's penguins";
    Console.WriteLine(Titlizing(str1));
    Console.WriteLine(" ");
    Console.WriteLine(Titlizing(str2));

}
public static string Titlizing( string toTitle )
{
    string[] dawords = toTitle.Split(' ');
    string output = "";
    TextInfo myTI = new CultureInfo("en-US",false).TextInfo;
    foreach (string s in dawords)
    {
        switch(s)
        {
            case "and":
                output += ' '+ s;
                break;
            case "or":
                output += ' '+ s;           
                break;
            case "of":
                output += ' '+ s;
                break;
            default:
            {
                output += ' '+myTI.ToTitleCase(s);
                break;
            }
        }
    }
    return output;
}
}

当我通过《战争与和平》时,我收到了《战争与和平》。

希望对你有帮助。