स्ट्रिंग में स्वरों (a, e, i, o, u - दोनों केस) की गिनती के लिए हम प्रत्येक कैरेक्टर की जांच करते हैं।
उदाहरण
using System;
public class Demo {
public static void Main() {
string myStr = "Avengers";
int vowel_count = 0;
int len = myStr.Length;
for (int i = 0; i < len; i++) {
char c = myStr[i];
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
vowel_count++;
}
}
Console.Write("\nVowels in the string: {0}\n", vowel_count);
}
}
आउटपुट
Vowels in the string: 3
बेहतर दृष्टिकोण: HashSet/Contains
var vowels = new HashSet{ 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' }; int count = myStr.Count(c => vowels.Contains(c));
सबसे सरल: स्ट्रिंग.Contains
string vowels = "aeiouAEIOU"; int count = myStr.Count(c => vowels.Contains(c));
नियमित अभिव्यक्ति (Regex) के साथ
using System.Text.RegularExpressions; int count = Regex.Matches(myStr, "[aeiouAEIOU]").Count;
केस-इनसेंसिटिव तुलना
int count = myStr.Count(c => "aeiou".Contains(char.ToLower(c)));
यूनिकोड स्वरों के लिए
यदि अंतर्राष्ट्रीय पाठ (जैसे: à, é, ü, ø) संभालना है:
// Unicode कैटेगरी चेक (जटिल) // या लाइब्रेरी उपयोग करें // सरल दृष्टिकोण: सामान्यीकृत स्ट्रिंग पर काम करें string normalized = myStr.Normalize(NormalizationForm.FormD); int count = normalized.Count(c => "aeiouAEIOU".Contains(c) || char.GetUnicodeCategory(c) == UnicodeCategory.NonSpacingMark);
मुख्य बिंदु
- अंग्रेजी में 5 स्वर: a, e, i, o, u (और उनके अपरकेस)।
- 'y' कभी-कभी स्वर माना जाता है (जैसे "gym" में) - आवश्यकतानुसार जोड़ें।
HashSetO(1) लुकअप देता है, बड़े स्ट्रिंग्स के लिए तेज।- LINQ
Count(predicate)संक्षिप्त और पठनीय है।