स्ट्रिंग में अपरकेस (बड़े अक्षर) और लोअरकेस (छोटे अक्षर) कैरेक्टर्स की गिनती के लिए हम प्रत्येक कैरेक्टर की ASCII/यूनिकोड वैल्यू जांचते हैं।
शर्तें
- अपरकेस:
'A'(65) से'Z'(90) तक - लोअरकेस:
'a'(97) से'z'(122) तक
उदाहरण
using System;
public class Demo {
public static void Main() {
string myStr = "Hello";
Console.Write("String: " + myStr);
int lower_case = 0, upper_case = 0;
int len = myStr.Length;
for (int i = 0; i < len; i++) {
if (myStr[i] >= 'a' && myStr[i] <= 'z') {
lower_case++;
}
else if (myStr[i] >= 'A' && myStr[i] <= 'Z') {
upper_case++;
}
}
Console.Write("\nCharacters in lowercase: {0}\n", lower_case);
Console.Write("Characters in uppercase: {0}\n\n", upper_case);
}
}
आउटपुट
String: Hello Characters in lowercase: 4 Characters in uppercase: 1
बेहतर दृष्टिकोण: Char.IsUpper/IsLower
foreach (char c in myStr) {
if (char.IsUpper(c)) upper_case++;
else if (char.IsLower(c)) lower_case++;
// char.IsLetter(c) - कोई भी अक्षर
// char.IsDigit(c) - अंक
// char.IsWhiteSpace(c) - व्हाइटस्पेस
}
LINQ के साथ (संक्षिप्त)
using System.Linq; int upper = myStr.Count(char.IsUpper); int lower = myStr.Count(char.IsLower); int digits = myStr.Count(char.IsDigit); int spaces = myStr.Count(char.IsWhiteSpace);
यूनिकोड विचार
char.IsUpper/IsLowerयूनिकोड कैरेक्टर्स के लिए सही काम करते हैं (जैसे: À, á, Ω, ω)।- ASCII रेंज चेक (
c >= 'A' && c <= 'Z') केवल बेसिक लैटिन अक्षरों के लिए काम करता है। - गैर-अक्षर कैरेक्टर्स (अंक, प्रतीक, स्पेस) दोनों काउंट्स में शामिल नहीं होते।
पूर्ण कैरेक्टर विश्लेषण
var analysis = new {
Upper = myStr.Count(char.IsUpper),
Lower = myStr.Count(char.IsLower),
Digits = myStr.Count(char.IsDigit),
WhiteSpace = myStr.Count(char.IsWhiteSpace),
Punctuation = myStr.Count(char.IsPunctuation),
Symbol = myStr.Count(char.IsSymbol),
Total = myStr.Length
};