Chuyển đổi chuỗi sang dạng Title Case (viết hoa chữ cái đầu mỗi từ, các chữ cái còn lại viết thường).
Mã nguồn (thuật toán thủ công)
using System;
class Demo {
static string ToTitleCase(string str) {
char[] val = str.ToCharArray();
for (int i = 0; i < str.Length; i++) {
// Là ký tự đầu chuỗi HOẶC ký tự sau khoảng trắng
if ((i == 0 && val[i] != ' ') ||
(val[i] != ' ' && val[i - 1] == ' ')) {
// Nếu là chữ thường → viết hoa
if (val[i] >= 'a' && val[i] <= 'z') {
val[i] = (char)(val[i] - 'a' + 'A');
}
}
// Các chữ cái khác (không phải đầu từ) → viết thường
else if (val[i] >= 'A' && val[i] <= 'Z') {
val[i] = (char)(val[i] + 'a' - 'A');
}
}
return new string(val);
}
public static void Main() {
string str = "Welcome to our website!";
Console.WriteLine(ToTitleCase(str));
}
}
Kết quả
Welcome To Our Website!
Cách chuẩn .NET: TextInfo.ToTitleCase (khuyên dùng)
using System.Globalization;
using System.Threading;
string str = "welcome to our website!";
var culture = Thread.CurrentThread.CurrentCulture;
string titleCase = culture.TextInfo.ToTitleCase(str);
Console.WriteLine(titleCase); // Welcome To Our Website!
Lưu ý
TextInfo.ToTitleCasexử lý tốt Unicode, từ ghép, viết tắt — nhưng KHÔNG chuyển các chữ cái GIA ĐẦU từ thành chữ thường (giữ nguyên nếu đã hoa).- Code thủ công chỉ xử lý ASCII A-Z/a-z — không hỗ trợ ký tự có dấu (À, Á, Ạ...).
- Với tiếng Việt, cần logic phức tạp hơn do từ có thể không tách bằng khoảng trắng.
- Trong ASP.NET Core, dùng
System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase.