2012-03-25 68 views
6

可能重複:
How to make a first letter capital in C#C#把握句子

我想利用在一個句子這是有第一個字,但它無法正常工作。預先感謝您的幫助。

char.ToUpper(sentence[0]) + sentence.Substring(1) 
+0

您是指句子的第一個字母? – 2012-03-25 16:23:38

+0

已解決 - 我通過執行以下操作來解決此問題。我需要它作爲句子[1]和子串(2)的一些補充原因。 sentence = Char.ToUpper(sentence [1])+ sentence.Substring(2); – amedeiros 2012-03-25 16:54:19

+0

也許你可能先運行'sentence = sentence.Trim();'。第一個字母之前可能有空格。 – fredsbend 2013-03-24 23:21:28

回答

4

這聽起來像你只是想利用一個string值的第一個字符。如果是這樣,那麼你的代碼很好,但你需要將新字符串分配回sentence值。

sentence = char.ToUpper(sentence[0]) + sentence.Substring(1) 

在.NET中string是不可改變的,因此每一個改變所述string操作產生一個新值。它不會改變原來的價值。因此,爲了看到更改的結果,您必須將其分配給一個變量。

+0

我試過這個,但它仍然是相同的結果。 – amedeiros 2012-03-25 16:28:59

+0

@ user1072481那你怎麼使用'sentence'呢?上面的代碼應該工作得很好,所以它必須在結果的使用 – JaredPar 2012-03-25 18:14:01

9

JaredPar的解決方案是正確的,但我也想指出你對TextInfo類。 ToTitleCase()將大寫第一個字母,並將其餘的轉換爲小寫。

 string s = "heLLo"; 
     var t = new CultureInfo("en-US", false).TextInfo; 
     s = t.ToTitleCase(s); //prints "Hello" 
+8

你可以做到這一點,而無需創建一個新的CultureInfo - 'CultureInfo.CurrentCulture.TextInfo.ToTitleCase(s)' – Blorgbeard 2012-12-03 22:06:25

+3

情況並非如此。 TextInfo.ToTitleCase()將每個單詞*的第一個字母*轉換爲大寫字符,而不僅僅是字符串的第一個字母(本例中爲句子),這就是問題所要求的。 – 2015-01-20 14:20:32

+0

請參閱@CamilleSévigny評論。 – Zunair 2017-04-11 17:39:32