Oříznutí a odstranění znaků
Pokud analyzujete větu podle jednotlivých slov, můžete narazit na slova, která mají na některém konci slova volné místo (tzv. prázdné znaky). V takovém případě můžete použít jednu z metod pro ořezávání ze třídy System.String pro odebrání libovolného počtu mezer nebo jiných znaků z určené pozice v řetězci. Následující tabulka popisuje dostupné metody pro ořezávání.
Název metody |
Pomocí |
---|---|
Odstraní prázdné znaky ze začátku a konce řetězce. |
|
Odstraní znaky zadané v poli znaků od konce řetězce. |
|
Odstraní znaky zadané v poli znaků od začátku řetězce. |
|
Odebere určený počet znaků ze zadaného místa v řetězci podle indexu pozice. |
Funkce Trim
Můžete snadno odebrat mezery z obou konců řetězce pomocí metody String.Trim, jak je znázorněno v následujícím příkladu.
Dim MyString As String = " Big "
Console.WriteLine("Hello{0}World!", MyString)
Dim TrimString As String = MyString.Trim()
Console.WriteLine("Hello{0}World!", TrimString)
string MyString = " Big ";
Console.WriteLine("Hello{0}World!", MyString);
string TrimString = MyString.Trim();
Console.WriteLine("Hello{0}World!", TrimString);
String^ MyString = " Big ";
Console::WriteLine("Hello{0}World!", MyString);
String^ TrimString = MyString->Trim();
Console::WriteLine("Hello{0}World!", TrimString);
string MyString = " Big ";
Console.WriteLine("Hello{0}World!", MyString);
string TrimString = MyString.Trim();
Console.WriteLine("Hello{0}World!", TrimString);
Tento kód zobrazí následující řádky do konzoly.
Hello Big World!
HelloBigWorld!
TrimEnd
Metoda String.TrimEnd odstraní znaky od konce řetězce a vytvoří nový objekt řetězce. Pole znaků je předáno této metodě pro určení znaků, které mají být odstraněny. Pořadí prvků v poli znaků nemá vliv na operaci ořezávání. Ořezávání přestane, když je nalezen znak, který není zadán v poli.
Následující příklad odebere poslední písmena řetězce pomocí metody TrimEnd. V tomto příkladu jsou pozice znaku 'r' a 'W' přehozeny pro znázornění, že nezáleží na pořadí znaků v poli. Všimněte si, že tento kód odstraní poslední slovo z MyString a část prvního.
Dim MyString As String = "Hello World!"
Dim MyChar() As Char = {"r","o","W","l","d","!"," "}
Dim NewString As String = MyString.TrimEnd(MyChar)
Console.WriteLine(NewString)
string MyString = "Hello World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);
String^ MyString = "Hello World!";
array<Char>^ MyChar = {'r','o','W','l','d','!',' '};
String^ NewString = MyString->TrimEnd(MyChar);
Console::WriteLine(NewString);
string MyString = "Hello World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);
Tento kód se zobrazí He na konzolu.
Následující příklad odebere poslední slovo řetězce pomocí metody TrimEnd. V tomto kódu čárka následuje slovo Hello, a protože čárka není zadána v poli znaků, které chcete oříznout, ořezávání končí čárkou.
Dim MyString As String = "Hello, World!"
Dim MyChar() As Char = {"r","o","W","l","d","!"," "}
Dim NewString As String = MyString.TrimEnd(MyChar)
Console.WriteLine(NewString)
string MyString = "Hello, World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);
String^ MyString = "Hello, World!";
array<Char>^ MyChar = {'r','o','W','l','d','!',' '};
String^ NewString = MyString->TrimEnd(MyChar);
Console::WriteLine(NewString);
string MyString = "Hello, World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);
Tento kód se zobrazí Hello, na konzolu.
TrimStart
Metoda String.TrimStart je podobná metodě String.TrimEnd s výjimkou toho, že vytvoří nový řetězec odebráním znaků od začátku existujícího objektu řetězce. Pole znaků je předáno metodě TrimStart pro určení znaků, které mají být odstraněny. Tak jako u metody TrimEnd, pořadí prvků v poli znaků neovlivní operace ořezávání. Ořezávání přestane, když je nalezen znak, který není zadán v poli.
Následující příklad odebere první slovo řetězce. V tomto příkladu pozici 'l' znak a 'H' znak se zpět ke znázornění, že nemá pořadí znaků v poli není záležitost.
Dim MyString As String = "Hello World!"
Dim MyChar() As Char = {"e","H","l","o"," " }
Dim NewString As String = MyString.TrimStart(MyChar)
Console.WriteLine(NewString)
string MyString = "Hello World!";
char[] MyChar = {'e', 'H','l','o',' ' };
string NewString = MyString.TrimStart(MyChar);
Console.WriteLine(NewString);
String^ MyString = "Hello World!";
array<Char>^ MyChar = {'e', 'H','l','o',' ' };
String^ NewString = MyString->TrimStart(MyChar);
Console::WriteLine(NewString);
string MyString = "Hello World!";
char[] MyChar = {'e', 'H','l','o',' ' };
string NewString = MyString.TrimStart(MyChar);
Console.WriteLine(NewString);
Tento kód se zobrazí World! na konzolu.
Remove
Metoda String.Remove odstraní určený počet znaků od určené pozice v existujícím řetězci. Tato metoda předpokládá index počítaný od nuly.
Následující příklad odebere deset znaků z řetězce počínaje pozicí pět v indexu počítaném od nuly.
Dim MyString As String = "Hello Beautiful World!"
Console.WriteLine(MyString.Remove(5,10))
string MyString = "Hello Beautiful World!";
Console.WriteLine(MyString.Remove(5,10));
String^ MyString = "Hello Beautiful World!";
Console::WriteLine(MyString->Remove(5,10));
string MyString = "Hello Beautiful World!";
Console.WriteLine(MyString.Remove(5,10));
Tento příklad zobrazuje Hello World! do konzoly.