Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Chương trình C# đếm chữ hoa/chữ thường trong chuỗi

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.