0

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

我现在的代码如下:

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

它将“战争与和平”转换为“战争与和平”,但我的要求是“战争与和平”。

目前 ToTitleCase 功能没有帮助。

请为我建议任何可能的解决方案。

谢谢。

4

1 回答 1

0

我认为最简单的做法是编写一个函数来扫描传递的用于连接单词(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;
}
}

当我通过战争与和平时,我收到了“战争与和平”。

希望有帮助。

于 2014-05-28T16:09:45.737 回答