تغییر بزرگی و کوچکی حروف یک رشته

می‌توان بزرگي و کوچکي حروف يک رشته را تغيير داد. به عنوان مثال يک رشته که متشکل از حروف کوچک است را می‌توان به حروف بزرگ تبديل کرد. با استفاده از متدهاي ()ToUpper و ()ToLower می‌توان حروف رشته را بزرگ يا کوچک کرد.

string lowercase = "abc";
string uppercase = "ABC";

Console.WriteLine("lowercase.ToUpper() = " + lowercase.ToUpper());
Console.WriteLine("uppercase.ToLower() = " + uppercase.ToLower());
lowercase.ToUpper() = ABC
uppercase.ToLower() = abc

به اين نکته توجه کنيد که اگر بخواهيم يک رشته به عنوان مثال يک جمله که از حروف بزرگ و کوچک تشکيل شده است، مثلاً حرف اول هر کلمه بزرگ و بقيه حروف کوچک نوشته شده باشند را با استفاده از متد ()ToUpper تغيير دهيم فقط حروف کوچک آن تغيير کرده و بزرگ می‌شوند و حروفي که از قبل بزرگ بوده‌اند تغيير نمی‌کنند. اين نکته در مورد متد ()ToLower نيز صدق می‌کند. حال بياييد يک متدي ايجاد کنيم که حرف اول کلمات هر رشته‌ای که به آن ارسال می‌شود را به صورت بزرگ و بقيه را به صورت کوچک تبديل کند. در اين برنامه از متدهاي دستکاري رشته که تا به حال ياد گرفته‌ایم، استفاده شده است.

class Program
{
    static string ToTitleCase(string str)
    {
        string[] words = str.Split(' ');

        for(int i = 0; i < words.Length; i++)
        {
            string firstLetter = words[i].Substring(0, 1);         
            string rest = words[i].Substring(1);                   
            string result = firstLetter.ToUpper() + rest.ToLower();
            words[i] = result;
        }

        return String.Join(" ", words);
    }

    static void Main()
    {
        string input;

        Console.WriteLine("Enter a string: ");
        input = Console.ReadLine();

        Console.WriteLine("Converting to Title Case...");
        input = ToTitleCase(input);

        Console.WriteLine(input);
    }
}
Enter a string:
tHe quICK bROwN fOx
Converting to Title Case...
The Quick Brown Fox

در مثال بالا يک متد به نام ToTitleCase ايجاد کرده‌ایم که يک رشته را به عنوان آرگومان قبول می‌کند.

string[] words = str.Split(' ');

ابتدا با استفاده از متد ()Split رشته را به کلمات تشکيل دهنده‌اش تقسيم بندي می‌کنیم، بنابراين می‌توان هر رشته را به صورت جداگانه دستکاري کرد.
سپس با استفاده از يک حلقه for در ميان کلمات گردش می‌کنیم.

string firstLetter = words[i].Substring(0, 1);
string rest = words[i].Substring(1);

اولين حرف هر کلمه را با استفاده از متد ()Substring استخراج و در يک متغير براي استفاده‌های بعدي ذخيره می‌کنیم. باقيمانده حروف کلمات را استخراج می‌کنیم.

string result = firstLetter.ToUpper() + rest.ToLower();

حال رشته‌ها را با هم ترکيب می‌کنیم البته از متد ()ToUpper براي بزرگ کردن حروف اول و از متد ()ToLower براي بزرگ کردن بقيه حروف کلمات استفاده می‌کنیم. بعد از اين کار عناصر آرايه را با کلمات اصلاح شده جايگزين می‌کنیم.

return String.Join(" ", words);

حال کلمات اصلاح شده را ترکيب کرده و در بين آنها فضاي خالي قرار می‌دهیم. سپس آنها را به متد فراخوان برگشت می‌دهیم.