Lekce 7: Jak efektivně manipulovat s řetězci v C#

Lekce 7: Jak efektivně manipulovat s řetězci v C#

Řetězce jsou neodmyslitelnou součástí většiny programovacích jazyků, včetně C#. Jsou nezbytné při zpracování textu, práci s uživatelským vstupem, zobrazování výstupů nebo komunikaci mezi aplikacemi. C# poskytuje výkonný nástroj pro práci s řetězci prostřednictvím třídy string. Tato třída nabízí různé metody pro manipulaci s textem, analýzu, porovnávání a formátování řetězců.

V této lekci se zaměříme na základní operace s řetězci, metody dostupné v třídě string, a také na výkonovou optimalizaci při práci s textovými daty. Podíváme se na různé způsoby formátování řetězců a na to, jak efektivně zpracovávat velké objemy textových dat pomocí třídy StringBuilder.

Co je řetězec?

V C# jsou řetězce reprezentovány pomocí třídy string, což je alias pro třídu System.String. Řetězec je imutabilní, což znamená, že jakmile je vytvořen, nelze jeho obsah změnit. Jakákoliv operace, která vypadá jako úprava řetězce, ve skutečnosti vytváří nový řetězec a starý zůstává nezměněn.

Příklad deklarace a inicializace řetězce:

string text = "Ahoj, světe!";

V tomto příkladu je vytvořen řetězec s hodnotou „Ahoj, světe!“. Hodnota je uložena v proměnné text a zůstává neměnná.

Základní operace s řetězci

  1. Spojování řetězců (konkatenace)

Řetězce můžeme spojovat pomocí operátoru +, což je jeden z nejběžnějších způsobů práce s textovými daty.

string cast1 = "Ahoj";
string cast2 = "světe";
string celek = cast1 + ", " + cast2 + "!";

V tomto případě jsou dva řetězce cast1 a cast2 spojeny a výsledný řetězec je „Ahoj, světe!“.

  1. Zjištění délky řetězce

Délku řetězce, tedy počet znaků, můžeme zjistit pomocí vlastnosti Length.

string text = "Ahoj, světe!";
int delka = text.Length;

Zde proměnná delka bude obsahovat hodnotu 12, což odpovídá počtu znaků v řetězci „Ahoj, světe!“.

  1. Přístup k jednotlivým znakům

Jednotlivé znaky v řetězci můžeme získat pomocí indexace, přičemž index začíná od nuly.

char prvniZnak = text[0];  // A
char posledniZnak = text[text.Length - 1];  // !

Zde proměnná prvniZnak bude obsahovat znak ‚A‘ a posledniZnak bude ‚!‘, což je poslední znak řetězce.

Běžné metody pro práci s řetězci

Třída string poskytuje mnoho užitečných metod pro manipulaci s textem. Zde je několik často používaných metod:

  1. Substring – Vytvoření podřetězce

Metoda Substring vrací část řetězce, počínaje zadaným indexem.

string text = "Ahoj, světe!";
string podretezec = text.Substring(6, 5);  // "světe"

Zde podřetězec bude obsahovat hodnotu „světe“, protože vybíráme 5 znaků počínaje indexem 6.

  1. ToUpper a ToLower – Převedení na velká nebo malá písmena

Tyto metody převedou všechny znaky řetězce na velká nebo malá písmena.

string velkyText = text.ToUpper();  // AHOJ, SVĚTE!
string malyText = text.ToLower();   // ahoj, světe!
  1. Replace – Nahrazení části řetězce

Metoda Replace nahrazuje všechny výskyty určitého podřetězce nebo znaku v řetězci.

string novyText = text.Replace("světe", "C#");  // "Ahoj, C#!"
  1. IndexOf – Najde první výskyt znaku nebo podřetězce

Metoda IndexOf vrátí index prvního výskytu zadaného znaku nebo podřetězce.

int pozice = text.IndexOf("světe");  // 6

Pokud hledaný řetězec není nalezen, metoda vrátí -1.

  1. Trim – Odstranění mezer

Metoda Trim odstraní bílé znaky (mezery, nové řádky) na začátku a na konci řetězce.

string textSMezerami = "   Ahoj, světe!   ";
string orezanyText = textSMezerami.Trim();  // "Ahoj, světe!"

Formátování řetězců

C# nabízí několik způsobů, jak dynamicky formátovat řetězce. Můžeme použít konkatenaci, metodu String.Format, nebo nejnovější způsob – interpolaci řetězců.

  1. Konkatenace

Jednoduché formátování lze provést pomocí operátoru +.

string jmeno = "Petr";
int vek = 30;
string vysledek = "Jmenuji se " + jmeno + " a je mi " + vek + " let.";
  1. String.Format

Metoda String.Format umožňuje vkládání hodnot do textového řetězce pomocí speciálních formátovacích zástupných znaků.

string vysledek = String.Format("Jmenuji se {0} a je mi {1} let.", jmeno, vek);
  1. Interpolace řetězců

Interpolace řetězců je moderní a čitelnější způsob formátování. Při interpolaci používáme znak $ před řetězcem a do složených závorek {} vkládáme proměnné.

string vysledek = $"Jmenuji se {jmeno} a je mi {vek} let.";

Efektivní práce s řetězci – StringBuilder

Řetězce v C# jsou neměnné, což znamená, že každá úprava řetězce vytvoří nový objekt v paměti. To může být neefektivní, zejména pokud často provádíme úpravy velkých řetězců. Pro efektivní manipulaci s textem, který se často mění, je lepší použít třídu StringBuilder z knihovny System.Text.

Příklad použití StringBuilder:

using System.Text;

StringBuilder sb = new StringBuilder();
sb.Append("Ahoj");
sb.Append(", ");
sb.Append("světe!");
string vysledek = sb.ToString();

Tento přístup je mnohem efektivnější, pokud pracujeme s textem, který se často mění nebo upravuje, protože nedochází k vytváření zbytečných instancí řetězců.

Závěr

Práce s řetězci je nezbytnou dovedností pro každého vývojáře. V této lekci jsme si ukázali, jak C# poskytuje silnou podporu pro manipulaci s textem prostřednictvím třídy string a jejích metod. Naučili jsme se, jak vytvářet a upravovat řetězce, jak je formátovat a jak efektivně pracovat s velkým množstvím textu pomocí třídy StringBuilder. Pochopení práce s řetězci nám umožní vytvářet flexibilní a výkonné aplikace, které mohou efektivně zpracovávat textová data.

Jirka

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners. View more
Cookies settings
Accept
Privacy & Cookie policy
Privacy & Cookies policy
Cookie name Active

Kdo jsme

Naše webová adresa je: https://www.jefta.cz.

Komentáře

Když návštěvníci zanechají na webu komentáře, shromažďujeme údaje zobrazené ve formuláři pro komentáře a také IP adresu návštěvníka a řetězec uživatelského agenta prohlížeče, abychom pomohli odhalit spam.

Anonymizovaný řetězec vytvořený z vaší e-mailové adresy (také nazývaný hash) může být poskytnut službě Gravatar, abyste zjistili, zda ji používáte. Zásady ochrany osobních údajů služby Gravatar jsou k dispozici zde: https://automattic.com/privacy/. Po schválení vašeho komentáře bude váš profilový obrázek viditelný pro veřejnost v kontextu vašeho komentáře.

Média

Pokud na web nahráváte obrázky, měli byste se vyhnout nahrávání obrázků s vloženými údaji o poloze (EXIF GPS). Návštěvníci webu si mohou stáhnout a extrahovat jakákoli data o poloze z obrázků na webu.

Soubory cookie

Pokud na našem webu zanecháte komentář, můžete se přihlásit k ukládání svého jména, e-mailové adresy a webu do souborů cookie. Jsou pro vaše pohodlí, abyste nemuseli znovu vyplňovat své údaje, když zanecháte další komentář. Tyto cookies vydrží jeden rok.

Pokud navštívíte naši přihlašovací stránku, nastavíme dočasný soubor cookie, abychom zjistili, zda váš prohlížeč přijímá soubory cookie. Tento soubor cookie neobsahuje žádné osobní údaje a po zavření prohlížeče je vyřazen.

Když se přihlásíte, nastavíme také několik souborů cookie pro uložení vašich přihlašovacích údajů a vašich voleb zobrazení obrazovky. Přihlašovací soubory cookie vydrží dva dny a soubory cookie možností obrazovky vydrží rok. Pokud zvolíte "Zapamatovat si mě", vaše přihlášení bude trvat dva týdny. Pokud se odhlásíte ze svého účtu, přihlašovací soubory cookie budou odstraněny.

Pokud upravíte nebo publikujete článek, uloží se do vašeho prohlížeče další cookie. Tento soubor cookie neobsahuje žádné osobní údaje a pouze označuje ID příspěvku článku, který jste právě upravili. Jeho platnost vyprší po 1 dni.

Vložený obsah z jiných webových stránek

Články na tomto webu mohou obsahovat vložený obsah (např. videa, obrázky, články atd.). Vložený obsah z jiných webových stránek se chová úplně stejně, jako kdyby návštěvník navštívil jinou webovou stránku.

Tyto webové stránky mohou shromažďovat údaje o vás, používat soubory cookie, vkládat další sledování třetích stran a monitorovat vaši interakci s tímto vloženým obsahem, včetně sledování vaší interakce s vloženým obsahem, pokud máte účet a jste na dané webové stránce přihlášeni.

S kým sdílíme vaše údaje

Pokud požádáte o resetování hesla, vaše IP adresa bude zahrnuta v e-mailu pro resetování.

Jak dlouho vaše údaje uchováváme

Pokud zanecháte komentář, bude komentář a jeho metadata uchována po neomezenou dobu. Je to proto, abychom mohli rozpoznat a schválit jakékoli následné komentáře automaticky, místo abychom je drželi ve frontě na moderování.

Pro uživatele, kteří se zaregistrují na našich webových stránkách (pokud existují), ukládáme také osobní údaje, které poskytují, v jejich uživatelském profilu. Všichni uživatelé mohou kdykoli zobrazit, upravit nebo smazat své osobní údaje (kromě toho, že nemohou změnit své uživatelské jméno). Správci webových stránek mohou tyto informace také zobrazit a upravovat.

Jaká práva máte nad svými údaji

Pokud máte účet na této stránce nebo jste zanechali komentáře, můžete požádat o zaslání exportovaného souboru osobních údajů, které o vás uchováváme, včetně všech údajů, které jste nám poskytli. Můžete také požádat, abychom vymazali veškeré osobní údaje, které o vás uchováváme. To nezahrnuje žádné údaje, které jsme povinni uchovávat pro administrativní, právní nebo bezpečnostní účely.

Kam se posílají vaše data

Komentáře návštěvníků mohou být kontrolovány prostřednictvím služby automatické detekce spamu.

Save settings
Cookies settings