Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में स्ट्रिंग को टाइटल केस में कैसे बदलें

टाइटल केस कोई भी टेक्स्ट है, जैसे शीर्षक या हेडिंग में, जहां प्रमुख शब्दों का पहला अक्षर कैपिटलाइज़ होता है। टाइटल केस या हेडलाइन केस अंग्रेजी में प्रकाशित कार्यों या कला कार्यों के शीर्षक प्रस्तुत करने के लिए उपयोग की जाने वाली कैपिटलाइज़ेशन की एक शैली है। टाइटल केस का उपयोग करते समय, सभी शब्द कैपिटलाइज़ होते हैं सिवाय "माइनर" शब्दों के जब तक कि वे शीर्षक का पहला या अंतिम शब्द न हों।

उदाहरण में ToTitleCase का वर्तमान कार्यान्वयन एक आउटपुट स्ट्रिंग देता है जो इनपुट स्ट्रिंग की समान लंबाई का होता है।

उदाहरण 1: बुनियादी उपयोग

using System.Globalization;

class Program
{
    static void Main(string[] args)
    {
        string myString = "wAr aNd pEaCe";
        TextInfo myTI = new CultureInfo("en-US", false).TextInfo;
        
        Console.WriteLine("\"{0}\" to titlecase: {1}", myString, myTI.ToTitleCase(myString));
        Console.ReadLine();
    }
}

आउटपुट

"war and peace" to titlecase: War And Peace

उदाहरण 2: एकाधिक स्ट्रिंग्स

class Program
{
    static void Main(string[] args)
    {
        string[] values = 
        { 
            "a tale of three cities", 
            "gROWL rescue", 
            "inside the office", 
            "sports and tennis", 
            "The Return of Christmas Holmes" 
        };
        
        TextInfo ti = CultureInfo.CurrentCulture.TextInfo;
        
        foreach (var value in values)
        {
            Console.WriteLine("{0} --> {1}", value, ti.ToTitleCase(value));
        }
        Console.ReadLine();
    }
}

आउटपुट

a tale of three cities --> A Tale Of Three Cities
gROWL rescue --> Growl Rescue
inside the office --> Inside The Office
sports and tennis --> Sports And Tennis
The Return of Christmas Holmes --> The Return Of Christmas Holmes

महत्वपूर्ण सीमाएं

  • पूरी तरह से अपरकेस शब्द: "USA" → "Usa" (संक्षिप्त नाम संभाल नहीं जाते)
  • माइनर शब्द: "of", "and", "the" जैसे शब्द कैपिटलाइज़ हो जाते हैं (मानक टाइटल केस नियमों के विपरीत)
  • अपोस्ट्रोफी: "o'brien" → "O'brien" (नहीं "O'Brien")
  • हाइफ़न: "mother-in-law" → "Mother-In-Law"

बेहतर टाइटल केस कार्यान्वयन

public static class StringExtensions
{
    private static readonly HashSet<string> MinorWords = new(StringComparer.OrdinalIgnoreCase)
    {
        "a", "an", "the", "and", "but", "or", "for", "nor",
        "on", "at", "to", "from", "by", "of", "in", "with"
    };
    
    private static readonly HashSet<string> Acronyms = new(StringComparer.OrdinalIgnoreCase)
    {
        "usa", "uk", "eu", "nasa", "fbi", "cia", "html", "css", "js", "api"
    };
    
    public static string ToTitleCaseSmart(this string input, CultureInfo culture = null)
    {
        if (string.IsNullOrWhiteSpace(input)) return input;
        
        culture ??= CultureInfo.CurrentCulture;
        var textInfo = culture.TextInfo;
        
        // पहले मानक ToTitleCase लागू करें
        string result = textInfo.ToTitleCase(input.ToLower());
        
        // माइनर शब्दों को ठीक करें (पहले/अंतिम को छोड़कर)
        var words = result.Split(' ');
        for (int i = 1; i < words.Length - 1; i++)
        {
            if (MinorWords.Contains(words[i].ToLower()))
            {
                words[i] = words[i].ToLower();
            }
        }
        
        // संक्षिप्त नामों को ठीक करें
        for (int i = 0; i < words.Length; i++)
        {
            if (Acronyms.Contains(words[i].ToLower()))
            {
                words[i] = words[i].ToUpper();
            }
        }
        
        return string.Join(" ", words);
    }
}

// उपयोग
Console.WriteLine("war and peace".ToTitleCaseSmart());           // War and Peace
Console.WriteLine("THE USA FLAG".ToTitleCaseSmart());           // The USA Flag
Console.WriteLine("o'brien's book".ToTitleCaseSmart());         // O'Brien's Book

TextInfo के अन्य उपयोगी मेथड्स

TextInfo ti = CultureInfo.CurrentCulture.TextInfo;

Console.WriteLine(ti.ToUpper("hello"));      // HELLO
Console.WriteLine(ti.ToLower("HELLO"));      // hello
Console.WriteLine(ti.ToTitleCase("hello"));  // Hello

// ANSI कोड पेज
Console.WriteLine(ti.ANSICodePage);          // 1252 (पश्चिमी यूरोपीय)
Console.WriteLine(ti.IsRightToLeft);         // False (अंग्रेजी के लिए)
  1. स्ट्रिंग को जावास्क्रिप्ट ऑब्जेक्ट में कैसे बदलें? स्ट्रिंग को जावास्क्रिप्ट ऑब्जेक्ट में कैसे बदलें?

    स्ट्रिंग को जावास्क्रिप्ट ऑब्जेक्ट में बदलने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style>    

  1. - C# में सूची को स्ट्रिंग में कैसे बदलें

    एक सूची घोषित करें। List l = new List(); अब, सूची में तत्व जोड़ें। // तत्व l.Add(Accessories); l.Add(Footwear); l.Add(Watches); अब इसे स्ट्रिंग में बदलें। string str = string.Join( , l.ToArray()); आइए C# में सूची को स्ट्रिंग में बदलने का अंतिम कोड देखें: उदाहरण using System; using System.Collection

  1. - C# में स्ट्रिंग टाइटल केस क्या है?

    ToTitleCase मेथड का उपयोग किसी शब्द में पहले अक्षर को कैपिटलाइज़ करने के लिए किया जाता है। टाइटल केस का अर्थ ही प्रत्येक प्रमुख शब्द के पहले अक्षर को कैपिटलाइज़ करना है।आइए टाइटल केस प्राप्त करने का एक उदाहरण देखें:उदाहरणusing System; using System.Globalization; class Demo { static void Main() { str