Jak odstranit mezery v řetězci v C#

Jak Odstranit Mezery V Retezci V C



V C# jsou bílé znaky reprezentovány mezerou, tabulátorem, novým řádkem, návratem vozíku a dalšími podobnými znaky. Odstranění bílých znaků z řetězce je běžným úkolem při manipulaci s řetězci, zejména při práci s uživatelskými vstupy, zpracováním souborů a analýzou dat. Tento článek se ponoří do různých metod odstraňování mezer z řetězce v C#.

Co jsou mezery?

Mezery jsou znaky, které představují prázdná nebo prázdná místa v textovém řetězci. Obvykle se používají k oddělení slov a dalších prvků textu a ke zlepšení čitelnosti a vizuálního vzhledu textu.







V programování bílé znaky zahrnují znaky, jako jsou mezery, tabulátory, nové řádky a konce řádku. V mnoha programovacích jazycích jsou bílé znaky při zpracování nebo interpretaci kódu ignorovány nebo považovány za nepodstatné, ale mohou ovlivnit rozložení, formátování a syntaxi kódu.



Jak odstranit mezery v řetězci

Odstranění nebo manipulace s mezerami je běžným úkolem při zpracování řetězců a manipulaci s textem. Normalizace nebo standardizace textových vstupů často zahrnuje potřebu odstranit nebo nahradit mezery. Chcete-li odstranit nepotřebné znaky, které mohou ovlivnit funkčnost kódu nebo přesnost dat, nebo zlepšit efektivitu a čitelnost kódu, zde jsou některé, jak to udělat:



1: Použití metody String.Replace().

Chcete-li odstranit mezery z řetězce přímým způsobem, lze použít metodu String.Replace(). V tomto scénáři můžeme jako starou hodnotu označit znak mezery „ “ a jako novou hodnotu prázdný řetězec „“. Tímto způsobem budou efektivně odstraněny všechny mezery v řetězci.





pomocí systému;

třída whitepace
{
statické prázdno Hlavní ( tětiva [ ] argumenty )
{
string originalString = 'Ahoj, Sam!' ;
string trimmedString = původníString.Replace ( '' , '' ) ;
Console.WriteLine ( trimmedString ) ;
}
}


Tento program obsahuje příkaz using, který importuje jmenný prostor System, který je vyžadován pro použití třídy Console pro vstup a výstup konzoly.

V rámci metody Main inicializujeme řetězcovou proměnnou s názvem originalString s hodnotou „Hello, Sam!“.



Dále deklarujeme další řetězcovou proměnnou s názvem trimmedString a přiřadíme jí výsledek vyvolání metody Replace() na originalString. The Nahradit() metoda se volá se dvěma argumenty: první argument představuje starý podřetězec, který chceme nahradit, což je v tomto případě jedna mezera „ “, a druhý argument označuje nový podřetězec, kterým jej chceme nahradit, konkrétně prázdný řetězec “.

2: Použití metody String.Join().

Dalším způsobem, jak z řetězce odstranit mezery, je rozdělit řetězec na pole podřetězců pomocí metody String.Split() a poté podřetězce zpět spojit pomocí String.Join() metoda. K odstranění jakýchkoli prázdných podřetězců, které mohou vzniknout z po sobě jdoucích mezer, můžeme použít volbu StringSplitOptions.RemoveEmptyEntries.

pomocí systému;

třída whitepace
{
statické prázdno Hlavní ( tětiva [ ] argumenty )
{
string originalString = 'Ahoj, Sam!' ;
tětiva [ ] podřetězce = originalString.Split ( nový char [ ] { ' ' } , StringSplitOptions.RemoveEmptyEntries ) ;
string trimmedString = String.Join ( '' , podřetězce ) ;
Console.WriteLine ( trimmedString ) ;
}
}


V tomto kódu je deklarace řetězcové proměnné s názvem „originalString“ a je inicializována hodnotou „Hello, Sam!“ a poté podstoupí rozdělení na pole podřetězců pomocí znaku mezery jako oddělovače. Možnost RemoveEmptyEntries se používá k vyloučení jakýchkoli prázdných podřetězců z výsledného pole.

Následně kód využívá String.Join() metoda ke sloučení neprázdných podřetězců do sjednoceného řetězce s využitím prázdného řetězce jako oddělovače.

Nakonec kód využívá Console.WriteLine k zobrazení oříznutého řetězce v okně konzoly. Po spuštění tohoto kódu můžete očekávat, že uvidíte výstup „Ahoj, Sam!“ vytištěné na konzole.

3: Použití regulárních výrazů

Regulární výrazy poskytují účinný způsob, jak porovnat a nahradit vzory v řetězcích. Pomocí Regex.Replace() můžeme efektivně eliminovat všechny bílé znaky z řetězce.

pomocí systému;
pomocí System.Text.RegularExpressions;

třída mezery
{
statické prázdno Hlavní ( tětiva [ ] argumenty )
{
string originalString = 'Ahoj, Sam!' ;
string trimmedString = Regex.Replace ( původní řetězec, @ '\s+' , '' ) ;
Console.WriteLine ( trimmedString ) ; '
}
}


V tomto kódu je řetězcová proměnná s názvem „originalString“ deklarována a inicializována hodnotou „Hello, Sam!“. Kód pak používá metodu Regex.Replace() k nahrazení jednoho nebo více bílých znaků (reprezentovaných regulárním výrazem \s+) prázdným řetězcem.

Nakonec kód používá Console.WriteLine() k výstupu oříznutého řetězce do okna konzoly a Když spustíte tento program, uvidíte výstup „Hello, Sam!“ vytištěné na konzoli.

V tomto konkrétním příkladu je vzor regulárního výrazu @”\s+” použit ke shodě jednoho nebo více bílých znaků (včetně mezer, tabulátorů a nových řádků) a následně je nahradí prázdným řetězcem.

4: Použití LINQ

Můžeme také odstranit mezery z řetězce pomocí LINQ. Můžeme použít metodu Where() k odfiltrování bílých znaků a poté spojit zbývající znaky zpět dohromady pomocí String.Concat() metoda.

pomocí systému;
pomocí System.Linq;

třída mezery
{
statické prázdno Hlavní ( tětiva [ ] argumenty )
{
string originalString = 'Ahoj, Sam!' ;
string trimmedString = nový řetězec ( originalString.Where ( c = > ! char.IsWhiteSpace ( C ) ) .ToArray ( ) ) ;
Console.WriteLine ( trimmedString ) ;
}
}


V tomto úryvku kódu je deklarována řetězcová proměnná nazvaná „originalString“ a inicializována hodnotou „ Hello, Sam! “. Poté vytvoří novou řetězcovou proměnnou s názvem trimmedString pomocí výrazu LINQ, který odfiltruje všechny mezery z původního řetězce. K filtrování znaků se používá metoda rozšíření Where() a výsledné znaky jsou převedeny na pole a předány konstruktoru nového řetězce, aby se vytvořil nový řetězec.

Nakonec kód použije Console.WriteLine() k výstupu oříznutého řetězce do okna konzoly. Po spuštění tohoto kódu můžete očekávat výstup „Ahoj, Same!“ zobrazené na konzole.

Závěr

V C# existují různé metody pro odstranění mezer z řetězce a těmi jsou metoda String.Replace(), metoda String.Join(), používající regulární výrazy a použití LINQ. Je zásadní zvolit metodu, která je účinná, robustní a snadno srozumitelná, umožňuje snadnou údržbu a čitelnost.