Oříznutí a odebrání znaků z řetězců v .NET
Pokud parsujete větu na jednotlivá slova, můžete mít na obou koncích slova prázdné mezery (označované také jako prázdné mezery). V takovém případě můžete použít některou z metod oříznutí ve System.String
třídě k odebrání libovolného počtu mezer nebo jiných znaků ze zadané pozice v řetězci. Následující tabulka popisuje dostupné metody oříznutí:
Název metody | Používání |
---|---|
String.Trim | Odebere prázdné znaky nebo znaky zadané v matici znaků od začátku a konce řetězce. |
String.TrimEnd | Odebere znaky zadané v poli znaků z konce řetězce. |
String.TrimStart | Odebere znaky zadané v poli znaků od začátku řetězce. |
String.Remove | Odebere zadaný počet znaků ze zadané pozice indexu v řetězci. |
Trim
Pomocí metody můžete snadno odebrat prázdné znaky z obou koncích řetězce String.Trim , jak je znázorněno v následujícím příkladu:
String^ MyString = " Big ";
Console::WriteLine("Hello{0}World!", MyString);
String^ TrimString = MyString->Trim();
Console::WriteLine("Hello{0}World!", TrimString);
// The example displays the following output:
// Hello Big World!
// HelloBigWorld!
string MyString = " Big ";
Console.WriteLine("Hello{0}World!", MyString);
string TrimString = MyString.Trim();
Console.WriteLine("Hello{0}World!", TrimString);
// The example displays the following output:
// Hello Big World!
// HelloBigWorld!
Dim MyString As String = " Big "
Console.WriteLine("Hello{0}World!", MyString)
Dim TrimString As String = MyString.Trim()
Console.WriteLine("Hello{0}World!", TrimString)
' The example displays the following output:
' Hello Big World!
' HelloBigWorld!
Můžete také odebrat znaky zadané v poli znaků od začátku a konce řetězce. Následující příklad odebere prázdné znaky, tečky a hvězdičky:
using System;
public class Example
{
public static void Main()
{
String header = "* A Short String. *";
Console.WriteLine(header);
Console.WriteLine(header.Trim( new Char[] { ' ', '*', '.' } ));
}
}
// The example displays the following output:
// * A Short String. *
// A Short String
Module Example
Public Sub Main()
Dim header As String = "* A Short String. *"
Console.WriteLine(header)
Console.WriteLine(header.Trim({" "c, "*"c, "."c}))
End Sub
End Module
' The example displays the following output:
' * A Short String. *
' A Short String
Trimend
Metoda String.TrimEnd
odebere znaky z konce řetězce a vytvoří nový objekt řetězce. Pole znaků je předáno této metodě k určení znaků, které mají být odebrány. Pořadí prvků v poli znaků nemá vliv na operaci oříznutí. Oříznutí se zastaví, když se v poli nenajde znak.
Následující příklad odebere poslední písmena řetězce pomocí TrimEnd
metody. V tomto příkladu je pozice znaku 'r'
a 'W'
znak obrácené, aby bylo znázorněno, že pořadí znaků v poli nezáleží. Všimněte si, že tento kód odebere poslední slovo MyString
plus část první.
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);
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)
Tento kód se zobrazí He
v konzole.
Následující příklad odebere poslední slovo řetězce pomocí TrimEnd
metody. V tomto kódu následuje čárka za slovem Hello
a protože čárka není zadaná v poli znaků, které se mají oříznout, oříznutí končí čárkou.
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);
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)
Tento kód se zobrazí Hello,
v konzole.
Trimstart
Metoda String.TrimStart
je podobná metodě s tím rozdílem String.TrimEnd
, že vytvoří nový řetězec odebráním znaků od začátku existujícího objektu řetězce. Do metody se předá TrimStart
pole znaků, aby bylo možné určit znaky, které se mají odebrat. Stejně jako u TrimEnd
metody nemá pořadí prvků v poli znaků vliv na operaci oříznutí. Oříznutí se zastaví, když se v poli nenajde znak.
Následující příklad odebere první slovo řetězce. V tomto příkladu je pozice znaku 'l'
a 'H'
znak obrácené, aby bylo znázorněno, že pořadí znaků v poli nezáleží.
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);
Dim MyString As String = "Hello World!"
Dim MyChar() As Char = {"e", "H", "l", "o", " "}
Dim NewString As String = MyString.TrimStart(MyChar)
Console.WriteLine(NewString)
Tento kód se zobrazí World!
v konzole.
Odebrat
Metoda String.Remove odebere zadaný počet znaků, které začínají na zadané pozici v existujícím řetězci. Tato metoda předpokládá index založený na nule.
Následující příklad odebere 10 znaků z řetězce začínajícího na pozici pět indexu založeného na nule řetězce.
String^ MyString = "Hello Beautiful World!";
Console::WriteLine(MyString->Remove(5,10));
// The example displays the following output:
// Hello World!
string MyString = "Hello Beautiful World!";
Console.WriteLine(MyString.Remove(5,10));
// The example displays the following output:
// Hello World!
Dim MyString As String = "Hello Beautiful World!"
Console.WriteLine(MyString.Remove(5, 10))
' The example displays the following output:
' Hello World!
Nahradit
Můžete také odebrat zadaný znak nebo podřetězce z řetězce voláním String.Replace(String, String) metody a zadáním prázdného řetězce (String.Empty) jako nahrazení. Následující příklad odebere všechny čárky z řetězce:
using System;
public class Example
{
public static void Main()
{
String phrase = "a cold, dark night";
Console.WriteLine("Before: {0}", phrase);
phrase = phrase.Replace(",", "");
Console.WriteLine("After: {0}", phrase);
}
}
// The example displays the following output:
// Before: a cold, dark night
// After: a cold dark night
Module Example
Public Sub Main()
Dim phrase As String = "a cold, dark night"
Console.WriteLine("Before: {0}", phrase)
phrase = phrase.Replace(",", "")
Console.WriteLine("After: {0}", phrase)
End Sub
End Module
' The example displays the following output:
' Before: a cold, dark night
' After: a cold dark night