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

Chương trình C# đếm nguyên âm và phụ âm trong chuỗi

Đếm riêng số nguyên âm (vowel: a,e,i,o,u) và phụ âm (consonant: các chữ cái còn lại) trong chuỗi, không phân biệt hoa/thường, bỏ qua số/dấu cách/ký tự đặc biệt.

Mã nguồn

using System;

public class Demo {
    public static void Main() {
        string myStr = "Jack Sparrow";
        int vowelCount = 0, consonantCount = 0;
        int len = myStr.Length;
        
        for (int i = 0; i < len; i++) {
            char c = myStr[i];
            char lower = char.ToLower(c);
            
            if (lower == 'a' || lower == 'e' || lower == 'i' || lower == 'o' || lower == 'u') {
                vowelCount++;
            } else if (char.IsLetter(c)) { // Là chữ cái nhưng không phải nguyên âm
                consonantCount++;
            }
            // Bỏ qua: số, khoảng trắng, dấu câu...
        }
        
        Console.WriteLine("Nguyên âm: {0}", vowelCount);
        Console.WriteLine("Phụ âm: {0}", consonantCount);
    }
}

Kết quả

Nguyên âm: 3
Phụ âm: 8

(Jack Sparrow: a, a, o = 3 nguyên âm; J,c,k, S,p,r,r,w = 8 phụ âm; khoảng trắng bỏ qua)

Cách LINQ gọn nhẹ

using System.Linq;

string s = "Jack Sparrow".ToLower();
int vowels = s.Count(c => "aeiou".Contains(c));
int consonants = s.Count(c => char.IsLetter(c) && !"aeiou".Contains(c));

Lưu ý

  • Code gốc dùng điều kiện (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') — chỉ ASCII. Dùng char.IsLetter(c) hỗ trợ Unicode (tiếng Việt, tiếng Pháp...).
  • "y" được coi là nguyên âm hay phụ âm tùy ngôn ngữ/quy ước — code trên coi là phụ âm.
  • Khoảng trắng, số, dấu câu không đếm vào cả hai nhóm.