Duyệt từng ký tự trong chuỗi, kiểm tra phạm vi ASCII: 'A'-'Z' (chữ hoa), 'a'-'z' (chữ thường).
Mã nguồn
using System;
public class Demo {
public static void Main() {
string myStr = "Hello";
Console.Write("Chuỗi: " + myStr);
int lowerCase = 0, upperCase = 0;
int len = myStr.Length;
for (int i = 0; i < len; i++) {
char c = myStr[i];
if (c >= 'a' && c <= 'z') {
lowerCase++;
} else if (c >= 'A' && c <= 'Z') {
upperCase++;
}
// Ký tự khác (số, dấu câu, khoảng trắng) bị bỏ qua
}
Console.WriteLine("\nChữ thường: {0}", lowerCase);
Console.WriteLine("Chữ hoa: {0}", upperCase);
}
}
Kết quả
Chuỗi: Hello
Chữ thường: 4
Chữ hoa: 1
Cách hiện đại (LINQ)
using System.Linq;
int lower = myStr.Count(c => char.IsLower(c));
int upper = myStr.Count(c => char.IsUpper(int digit = myStr.Count(c => char.IsDigit(c));
int other = myStr.Length - lower - upper - digit;
Sử dụng char.IsUpper/IsLower (khuyên dùng)
Hỗ trợ Unicode (chữ có dấu, tiếng Nhật, Arabic...), không chỉ ASCII:
if (char.IsLower(c)) lowerCase++;
else if (char.IsUpper(c)) upperCase++;
Lưu ý
- Code gốc chỉ kiểm tra ASCII A-Z/a-z — không đếm được
À, á, ñ, Ω... char.IsLetter(c)kiểm tra có phải chữ cái (bất kỳ ngôn ngữ).char.IsWhiteSpace(c)kiểm tra khoảng trắng, tab, newline.- Khoảng trắng, số, dấu câu không được đếm vào cả 2 nhóm.