2012-03-25 17 views
6

Powiel możliwe:
How to make a first letter capital in C#C# wykorzystać zdanie

Staram się wykorzystać pierwsze słowo w zdaniu jest to, co mają, ale to nie działa. Z góry dziękuję za pomoc.

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

Masz na myśli pierwszą literę zdania? –

+0

SOLVED- Rozwiązałem go, wykonując następujące czynności. Potrzebowałem go do zdania [1] i substring (2) z jakiegoś powodu. zdanie = Char.ToUpper (zdanie) [1] + sentence.Substring (2); – amedeiros

+0

Być może najpierw uruchomiłeś 'sentence = sentence.Trim();'. Przed pierwszą literą mogło być miejsce. – fredsbend

Odpowiedz

4

Brzmi jak jesteś po prostu staramy się wykorzystać pierwszy znak wartości string. Jeśli tak, to twój kod jest w porządku, ale musisz przypisać nowy ciąg z powrotem do wartości sentence.

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

string w .NET jest niezmienna, a więc każda operacja, która zmienia string wytwarza nową wartość. Nie zmieni oryginalnej wartości w miejscu. Aby więc zobaczyć wynik zmiany, musisz przypisać ją do zmiennej.

+0

Próbowałem tego, ale wciąż jest ten sam wynik. – amedeiros

+0

@ user1072481 jak używasz 'zdanie', a następnie? Powyższy kod powinien działać dobrze, więc to musi być w używaniu wyniku – JaredPar

9

Rozwiązanie JaredPar ma rację, ale chciałbym również wskazać klasę TextInfo. ToTitleCase() zamieni wielką literę na pierwszą literę i zamieni pozostałą na małą literę.

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

Można to zrobić bez tworzenia nowego CultureInfo - 'CultureInfo.CurrentCulture.TextInfo.ToTitleCase (ów)' – Blorgbeard

+3

To nie jest przypadek. TextInfo.ToTitleCase() zamienia pierwszą literę każdego słowa * * Do górnego liter, a nie tylko pierwszą literę łańcucha (zdanie w tym przypadku), który jest co kwestia prosi. –

+0

patrz komentarz @Camille Sévigny. – Zunair

Powiązane problemy