none
C# změna velikosti písmena

    Dotaz

  • potřeboval bych poradit, dokážu písmena změnit tak, aby byla všechna velká/malá, ale teď bych chtěl zkusit to a samé, ale s tím, že budem vždy:

    1) první písmeno velké ostatní malé (Ahoj)

    2) první písmeno malé ostatní velké (aHOJ)

    A chtěl bych, abych to takto udělal v celém textu.

    Nevěděl by někdo?

    5. dubna 2010 14:37

Odpovědi

  • Zdravím, nech sa páči :) :
    static string SpracujVetu(string veta, bool opacne)
    {
        //Tu bude ulozeny nas spracovany retazec
        StringBuilder upravenyText = new StringBuilder();
    
        char predZnak = ' ';
        //Prejdi kazdy znak vo vete
        for (int i = 0; i < veta.Length; i++)
        {
            //Ak predch. znak bola medzera
            if (char.IsWhiteSpace(predZnak))
            {
                upravenyText.Append(
                    (!opacne ? char.ToUpper(veta[i]) : char.ToLower(veta[i]))
                    );
            }
            else
            {
                upravenyText.Append(
                    (!opacne ? char.ToLower(veta[i]) : char.ToUpper(veta[i]))
                    );
            }
    
            predZnak = veta[i];
        }
    
        return upravenyText.ToString();
    }
    Ukážka:
    string veta = "Ahoj, ako sa máš? Ináč čo máš nové?";
    Console.WriteLine(SpracujVetu(veta, false));
    Console.WriteLine(SpracujVetu(veta, true));
    Console.ReadKey();
    
    //Výstup:
    //Ahoj, Ako Sa Máš? Ináč Čo Máš Nové?
    //aHOJ, aKO sA mÁŠ? iNÁČ čO mÁŠ nOVÉ?
    
    5. dubna 2010 21:32