Đếm số nguyên âm (a, e, i, o, u) trong chuỗi, không phân biệt chữ hoa/chữ thường.
Mã nguồn
using System;
public class Demo {
public static void Main() {
string myStr = "Avengers";
int vowelCount = 0;
int len = myStr.Length;
for (int i = 0; i < len; i++) {
char c = char.ToLower(myStr[i]); // Chuyển về thường để so sánh
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
vowelCount++;
}
}
Console.WriteLine("Số nguyên âm: {0}", vowelCount);
}
}
Kết quả
Số nguyên âm: 3
(Avengers: A, e, e = 3)
Cách viết gọn hơn (LINQ)
using System.Linq;
int vowels = myStr.Count(c => "aeiou".Contains(char.ToLower(c)));
// Hoặc
int vowels = myStr.Count(c => "aeiouAEIOU".Contains(c));
Mở rộng: Đếm cả phụ âm (consonant)
int vowel = 0, consonant = 0;
foreach (char c in myStr) {
if (char.IsLetter(c)) {
char lower = char.ToLower(c);
if ("aeiou".Contains(lower)) vowel++;
else consonant++;
}
}
// Bỏ qua số, dấu câu, khoảng trắng
Lưu ý
- Code gốc kiểm tra 10 điều kiện (5 thường + 5 hoa) — dùng
char.ToLowerhoặc"aeiouAEIOU".Contains(c)ngắn gọn hơn. char.IsLetterloại bỏ số, dấu cách, ký tự đặc biệt.- Unicode:
char.ToLowerxử lý tốt tiếng Việt (ă, â, ê, ô, ơ, ư, đ...), nhưng "y" đôi khi được coi là nguyên âm tùy ngôn ngữ.