Cvičení – použití metod Remove() a Replace()
- 8 min
V tomto cvičení odeberete znaky z řetězce pomocí Remove() metody a nahradíte znaky metodou Replace() .
Někdy potřebujete upravit obsah řetězce, odebrat nebo nahradit znaky. I když byste mohli nahradit znaky nástroji, které už znáte, vyžaduje to trochu dočasného ukládání a spojování řetězců zpět.
string Datový typ má naštěstí další předdefinované metody Remove() a Replace()v těchto specializovaných scénářích.
Použijte metodu Remove()
Obvykle byste použili Remove() , když je standardní a konzistentní pozice znaků, které chcete z řetězce odebrat.
Toto cvičení obsahuje data uložená ve starších souborech s pevnou délkou a s pozicemi znaků přidělenými pro určitá pole informací. Prvních pět číslic představuje identifikační číslo zákazníka. Dalších 20 číslic obsahuje jméno zákazníka. Následujících šest pozic představuje nejnovější částku faktury zákazníka a poslední tři pozice představují počet položek objednaných na této faktuře.
V následujících krocích je potřeba odebrat jméno zákazníka, aby bylo možné data naformátovat, aby bylo možné je odeslat do samostatného procesu. Vzhledem k tomu, že znáte přesnou pozici a délku uživatelského jména, můžete ji snadno odebrat pomocí Remove() metody.
Odebrání znaků na konkrétních místech z řetězce
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 data = "12345John Smith 5000 3 "; string updatedData = data.Remove(5, 20); Console.WriteLine(updatedData);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.
Měl by se zobrazit následující výstup:
123455000 3Metoda
Remove()funguje podobně jako metodaSubstring(). Zadáte počáteční pozici a délku pro odebrání těchto znaků z řetězce.
Použijte metodu Replace()
Metoda Replace() se používá, když potřebujete nahradit jeden nebo více znaků jiným znakem (nebo žádný znak). Metoda Replace() se zatím liší od ostatních metod, které se dosud používají, nahrazuje všechny instance daných znaků, nejen první nebo poslední instance.
Odebrání znaků bez ohledu na to, kde se zobrazují v řetězci
Následujícím způsobem aktualizujte kód v editoru visual Studio Code:
string message = "This--is--ex-amp-le--da-ta"; message = message.Replace("--", " "); message = message.Replace("-", ""); Console.WriteLine(message);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:
This is example dataZde jste použili metodu
Replace()dvakrát. Poprvé jste nahradili řetězec--mezerou. Při druhém nahrazení řetězce-prázdným řetězcem což zcela odebere znak(y) z řetězce.
Rekapitulace
Tady jsou dvě důležité věci, které je potřeba pamatovat:
- Metoda
Remove()funguje podobně jakoSubstring()metoda s tím rozdílem, že odstraní zadané znaky v řetězci. - Metoda
Replace()nahrazuje všechny instance řetězce novým řetězcem.