2010-04-23 106 views

回答

60

MSDN文檔:

備註 一般來說,標題外殼轉換一個詞的第一個字母爲大寫和字符的其餘小寫。但是,此方法目前不提供適當的外殼來轉換完全大寫的單詞,如首字母縮寫詞。下表顯示了該方法呈現多個字符串的方式。

因此它是預期的行爲。如果全部大寫,則可以首先將字符串小寫,然後在其上運行ToTitleCase。

+0

你是對的,我在閱讀文檔時錯過了它。 – 2010-04-23 08:58:17

+0

@Nims - 在你遲來的防守中,[當前]文檔並沒有說ToTitleCase不會蹲在所有上限。我的第一印象是,它不會忽略所有上限,並無論如何將標題案。哎呦。 'textInfo.ToTitleCase(strAllCaps.ToLower())'它是。 – ruffin 2012-06-20 14:37:00

+2

目前的文檔還說「我們保留將來使這個API變慢的權利。」必須愛微軟! (: – chessofnerd 2013-07-05 13:43:38

7

我懷疑這是因爲所有首都的單詞都被認爲是縮寫,如美國。

例如,你不希望「地震襲擊美國」改爲「地震襲擊美國」嗎?

+0

那是一個錯誤。 Unicode指定「美國」 - >「美國」。編輯:好的,不是一個錯誤,因爲它是在文檔中提到的,但令人驚訝的行爲。 – leppie 2010-04-23 08:44:13

4

MSDN文檔說:

一般來說,標題外殼轉換一個詞的第一個字母爲大寫和字符的其餘小寫。但是,一個完全大寫的單詞,如首字母縮略詞,不會被轉換。

所以它按預期工作。嘗試TextInfo.ToTitleCase(TextInfo.ToLowerCase("STRINGINCAPS")

,如:

string TitleCaseString; 
TextInfo myTI = new CultureInfo("en-US",false).TextInfo; 
TitleCaseString = myTI.ToTitleCase(myTI.ToLowerCase("STRINGINCAPS")); 
+0

我應該添加改爲.net 3.5的措辭,並且不清楚這個事實。 – Kobi 2010-04-23 08:49:07

相關問題