Cvičení – zjišťování split() a join()
- 10 min
S tím, jak budete pokračovat ve vývoji logistické společnosti, začnete vytvářet řadu malých aplikací. Tyto aplikace spolupracují na převzetí dat ze systému jednoho partnera, jejich úpravě a následnému předání do interního systému v požadovaném formátu.
Pokud chcete provést transformaci dat, musíte přijmout příchozí data jako řetězec, parsovat je do menších datových prvků a pak s nimi manipulovat tak, aby odpovídaly požadovanému jinému formátu. Jak můžete analyzovat řetězcová data do menších datových prvků?
Metody Array datového typu String
Proměnné typu string mají řadu integrovaných metod, které převádí jeden řetězec na pole menších řetězců, nebo na pole jednotlivých znaků.
Při zpracování dat z jiných počítačových systémů se někdy formátují nebo kódují způsobem, který není pro vaše účely užitečný. V těchto případech použijete metody Array datového string typu k analýze řetězce do pole.
ToCharArray() Použití funkce k obrácenístring
Odstraňte nebo použijte operátor
//komentáře řádku k zakomentování veškerého kódu z předchozích cvičení.Následujícím způsobem aktualizujte kód v editoru visual Studio Code:
string value = "abc123"; char[] valueArray = value.ToCharArray();
V tomto příkladu ToCharArray() se metoda používá k vytvoření pole char, kde každý prvek pole představuje jeden znak původního řetězce.
Obráceně a pak zkombinujte pole znaků do nového řetězce.
Dále je pořadí znaků v poli obrácené a pak Write se metoda použije ke sloučení zpět do jednoho výstupu.
Následujícím způsobem aktualizujte kód v editoru visual Studio Code:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); string result = new string(valueArray); Console.WriteLine(result);Výraz
new string(valueArray)vytvoří novou prázdnou instanci třídySystem.String(která se v jazyce C# shoduje s datovým typemstring) a předá pole znaků jako konstruktor.Poznámka:
Co je klíčové slovo
new? Jak třídaSystem.Stringsouvisí v jazyce C# s datovým typemstring? Co je to konstruktor? Toto jsou zajímavé otázky, které ale bohužel není možné v rámci modulu zodpovědět. Doporučujeme, abyste se dozvěděli o knihovně tříd .NET a také o třídách a objektech v jazyce C#, abyste plně pochopili, co se děje na pozadí pomocí tohoto výrazu kódu. Prozatím můžete pomocí vyhledávacího webu a dokumentace Microsoftu najít příklady, které můžete použít v situacích, kdy víte, že chcete provést převod, ale nevíte, jak to udělat pomocí jazyka C#.V nabídce Soubor editoru Visual Studio Code vyberte Uložit.
Soubor Program.cs musí být uložen před sestavením nebo spuštěním kódu.
Na panelu PRŮZKUMNÍK otevřete terminál v umístění složky TestProject, klikněte pravým tlačítkem myši na TestProject a pak vyberte Otevřít v integrovaném terminálu.
Měl by se otevřít panel terminálu a měl by obsahovat příkazový řádek zobrazující, že terminál je otevřený v umístění složky TestProject.
Na příkazovém řádku terminálu spusťte kód zadáním příkazu dotnet run a stiskněte Enter.
Poznámka:
Pokud se zobrazí zpráva "Nepodařilo se najít projekt ke spuštění", ujistěte se, že příkazový řádek terminálu zobrazí očekávané umístění složky TestProject. Příklad:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Měl by se zobrazit následující výstup:
321cba
Zkombinování všech znaků do nového řetězce hodnot oddělených čárkami pomocí Join()
V některých případech může být nutné oddělit jednotlivé prvky pole znaků čárkou, což je běžný postup při práci s daty reprezentovanými jako text ASCII. Uděláte to tak, že zakomentujete řádek kódu, který jste přidali v kroku 2, a použijete String metodu třídy Join() a předáte znak, který chcete oddělovat jednotlivé segmenty (čárka) a samotnou matici.
Následujícím způsobem aktualizujte kód v editoru visual Studio Code:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result);Uložte soubor kódu a pak pomocí editoru Visual Studio Code spusťte svůj kód.
Měl by se zobrazit následující výstup:
3,2,1,c,b,a
Split() řetězec s oddělovači na pole řetězců
K dokončení kódu se Split() použije metoda. Tato metoda je určená pro proměnné typu string a vytvoří pole řetězců.
Pomocí Editoru editoru visual Studio Code přidejte do dolní části souboru následující řádky kódu:
string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Projděte si předchozí kód za minutu.
Čárka se zadává
.Split()jako oddělovač pro rozdělení jednoho dlouhého řetězce na menší řetězce. Kód pak pomocíforeachsmyčky iteruje každý prvek nově vytvořené pole řetězců,items.Zkontrolujte, že váš kód se teď zobrazuje takto:
string value = "abc123"; char[] valueArray = value.ToCharArray(); Array.Reverse(valueArray); // string result = new string(valueArray); string result = String.Join(",", valueArray); Console.WriteLine(result); string[] items = result.Split(','); foreach (string item in items) { Console.WriteLine(item); }Uložte soubor kódu a pak pomocí editoru Visual Studio Code spusťte svůj kód.
Při spuštění kódu se zobrazí následující výstup:
3,2,1,c,b,a 3 2 1 c b aPole
itemsvytvořené pomocístring[] items = result.Split(',');se používá veforeachsmyčce a zobrazuje jednotlivé znaky z původnístringproměnné obsažené vvalueproměnné.
Rekapitulace
Tady je několik klíčových bodů, které je potřeba si zapamatovat při práci s řetězci a poli:
- Pokud chcete vytvořit pole, použijte metody jako
ToCharArray()aSplit() - Pokud chcete pole převést zpět na jeden řetězec, použijte metody, jako
Join()je , nebo vytvořte nový řetězec, který předává polechar