वाक्य के प्रत्येक शब्द के पहले अक्षर को अपरकेस (कैपिटलाइज़) करने को टाइटल केस या पास्कल केस कहा जाता है।
उदाहरण: मैन्युअल कार्यान्वयन
using System;
class Demo {
static string ToTitleCase(string str) {
char[] val = str.ToCharArray();
for (int i = 0; i < str.Length; i++) {
// शब्द का पहला कैरेक्टर (शुरुआत या स्पेस के बाद)
if (i == 0 && val[i] != ' ' ||
val[i] != ' ' && val[i - 1] == ' ') {
if (val[i] >= 'a' && val[i] <= 'z') {
val[i] = (char)(val[i] - 'a' + 'A'); // अपरकेस में बदलें
}
}
else if (val[i] >= 'A' && val[i] <= 'Z') {
// शब्द के मध्य में अपरकेस को लोअरकेस करें
val[i] = (char)(val[i] + 'a' - 'A');
}
}
return new string(val);
}
public static void Main() {
string str = "Welcome to our website!";
Console.Write(ToTitleCase(str));
}
}
आउटपुट
Welcome To Our Website!
बिल्ट-इन तरीका: TextInfo.ToTitleCase (अनुशंसित)
using System.Globalization; using System.Threading; string str = "welcome to our website!"; var textInfo = CultureInfo.CurrentCulture.TextInfo; string titleCase = textInfo.ToTitleCase(str.ToLower()); Console.WriteLine(titleCase); // "Welcome To Our Website!"
नोट: TextInfo.ToTitleCase की सीमाएं
- सभी-कैप्स शब्दों को नहीं बदलता (जैसे "USA" → "USA")
- एपोस्ट्रोफी के बाद कैपिटलाइज़ नहीं करता ("don't" → "Don'T") <>केवल वर्तमान कल्चर के नियमों का पालन करता है
बेहतर कस्टम कार्यान्वयन
public static string ToTitleCaseBetter(string str) {
if (string.IsNullOrEmpty(str)) return str;
var words = str.Split(new[] { ' ', '\t', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
var result = new System.Text.StringBuilder();
foreach (string word in words) {
if (word.Length > 0) {
result.Append(char.ToUpper(word[0]));
if (word.Length > 1)
result.Append(word.Substring(1).ToLower());
}
result.Append(' ');
}
return result.ToString().TrimEnd();
}
मुख्य बिंदु
- मैन्युअल ASCII गणित (
c - 'a' + 'A') केवल अंग्रेजी के लिए काम करता है। char.ToUpper/ToLowerयूनिकोड-अनुकूल हैं।TextInfo.ToTitleCaseस्थानीयकृत नियमों का पालन करता है।- उत्पादन कोड के लिए
Humanizerलाइब्रेरी जैसी लाइब्रेरी पर विचार करें।