2012-03-25 17 views
6

thể trùng lặp:
How to make a first letter capital in C#C# tận dụng câu

Tôi cố gắng để tận dụng từ đầu tiên trong một câu này là những gì có nhưng nó không được làm việc. Cảm ơn trước sự giúp đỡ nào.

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

bạn có nghĩa là chữ cái đầu tiên của câu? –

+0

SOLVED- Tôi đã giải quyết nó bằng cách làm như sau. Tôi cần nó là câu [1] và chuỗi con (2) vì lý do nào đó. câu = Char.ToUpper (câu [1]) + câu.Substring (2); – amedeiros

+0

Có lẽ bạn có thể chạy 'câu = sentence.Trim();' trên nó trước. Có thể có một khoảng trống trước chữ cái đầu tiên. – fredsbend

Trả lời

4

Có vẻ như bạn đang cố gắng tận dụng ký tự đầu tiên của giá trị string. Nếu vậy thì mã của bạn chỉ là tốt nhưng bạn cần phải gán chuỗi mới trở lại giá trị sentence.

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

Một string trong Net là không thay đổi và do đó mọi hoạt động làm thay đổi string tạo ra một giá trị mới. Nó sẽ không thay đổi giá trị ban đầu tại chỗ. Vì vậy, để xem kết quả của sự thay đổi, bạn phải gán nó vào một biến.

+0

Tôi đã thử điều này nhưng nó vẫn là kết quả tương tự. – amedeiros

+0

@ user1072481 bạn đang sử dụng 'câu' như thế nào? Đoạn mã trên chỉ hoạt động tốt vì vậy nó phải được sử dụng trong kết quả – JaredPar

9

Giải pháp của JaredPar là đúng, nhưng tôi cũng muốn chỉ cho bạn hướng tới lớp TextInfo. ToTitleCase() sẽ viết hoa chữ cái đầu tiên và chuyển đổi chữ cái còn lại thành chữ thường.

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

Bạn có thể làm điều này mà không cần tạo một CultureInfo mới - 'CultureInfo.CurrentCulture.TextInfo.ToTitleCase (s)' – Blorgbeard

+3

Đây không phải là trường hợp. TextInfo.ToTitleCase() chuyển đổi chữ cái đầu tiên * của mỗi từ * thành ký tự chữ hoa, không chỉ là chữ cái đầu tiên của chuỗi (câu trong trường hợp này), đó là câu hỏi được hỏi. –

+0

xem nhận xét @Camille Sévigny. – Zunair