Sdílet prostřednictvím


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

Viz také