C# cung cấp phương thức built-in để chuyển đổi chữ hoa/thường cho chuỗi: ToUpper(), ToLower(), ToUpperInvariant(), ToLowerInvariant().
Mã nguồn
using System;
namespace Demo {
class MyApplication {
static void Main(string[] args) {
string str = "AMIT";
Console.WriteLine("Chữ hoa: {0}", str);
Console.WriteLine("Chữ thường: {0}", str.ToLower());
Console.ReadLine();
}
}
}
Kết quả
Chữ hoa: AMIT
Chữ thường: amit
Các phương thức liên quan
| Phương thức | Mô tả | Ví dụ |
|---|---|---|
ToUpper() | Chuyển toàn bộ sang chữ hoa (theo culture hiện tại) | "abc" → "ABC" |
ToLower() | Chuyển toàn bộ sang chữ thường (theo culture hiện tại) | "ABC" → "abc" |
ToUpperInvariant() | Chuyển hoa theo quy tắc invariant culture (EN-US) | An toàn cho so sánh nội bộ |
ToLowerInvariant() | Chuyển thường theo invariant culture | Khuyên dùng cho key, identifier |
Chuyển đổi từng ký tự (char)
char c = 'a';
char upper = char.ToUpper(c); // 'A'
char lower = char.ToLower(c); // 'a'
// Với culture cụ thể
char upperTr = char.ToUpper('i', new CultureInfo("tr-TR")); // 'İ' (dotted I)
Lưu ý quan trọng (Turkish I problem)
- Trong tiếng Thổ Nhĩ Kỳ (tr-TR, az-AZ):
'i'.ToUpper()='İ'(có chấm),'I'.ToLower()='ı'(không chấm). - Khi so sánh chuỗi nội bộ (key, config, XML...), luôn dùng
ToUpperInvariant/ToLowerInvarianthoặcStringComparison.OrdinalIgnoreCase. string.Equals(a, b, StringComparison.OrdinalIgnoreCase)— so sánh không phân biệt hoa/thường, an toàn culture.