Freigeben über


Kürzen und Entfernen von Zeichen aus Zeichenfolgen in .NET

Wenn Sie einen Satz in einzelne Wörter zerlegen, könnten Sie auf Wörter stoßen, die an beiden Enden Leerzeichen (auch als Weißräume bezeichnet) haben. In diesem Fall können Sie eine der Zuschneidemethoden in der System.String Klasse verwenden, um eine beliebige Anzahl von Leerzeichen oder anderen Zeichen aus einer bestimmten Position in der Zeichenfolge zu entfernen. In der folgenden Tabelle werden die verfügbaren Kürzungsmethoden beschrieben:

Methodenname Verwendung
String.Trim Entfernt Leerzeichen oder angegebene Zeichen in einem Array von Zeichen am Anfang und Ende einer Zeichenfolge.
String.TrimEnd Entfernt am Ende einer Zeichenfolge die in einem Array von Zeichen angegebenen Zeichen.
String.TrimStart Entfernt Zeichen, die in einem Array von Zeichen am Anfang einer Zeichenfolge angegeben sind.
String.Remove Entfernt eine angegebene Anzahl von Zeichen aus einer angegebenen Indexposition in einer Zeichenfolge.

Kürzen

Sie können Leerzeichen problemlos von beiden Enden einer Zeichenfolge entfernen, indem Sie die String.Trim Methode verwenden, wie im folgenden Beispiel gezeigt:

string MyString = " Big   ";
Console.WriteLine($"Hello{MyString}World!");
string TrimString = MyString.Trim();
Console.WriteLine($"Hello{TrimString}World!");
//       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!        

Sie können auch Zeichen entfernen, die Sie in einem Zeichenarray festlegen, am Anfang und Ende einer Zeichenfolge. Im folgenden Beispiel werden Leerzeichen, Punkte und Sternchen entfernt:

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

TrimEnde

Die String.TrimEnd Methode entfernt Zeichen vom Ende einer Zeichenfolge und erstellt ein neues Zeichenfolgenobjekt. An diese Methode wird ein Array von Zeichen übergeben, um die zu entfernenden Zeichen anzugeben. Die Reihenfolge der Elemente in der Zeichenfolge beeinflusst den Zuschnitt nicht. Der Trimmvorgang wird angehalten, wenn ein Zeichen gefunden wird, das nicht im Array angegeben ist.

Im folgenden Beispiel werden die letzten Buchstaben einer Zeichenfolge mithilfe der TrimEnd Methode entfernt. In diesem Beispiel wird die Position des 'r' Zeichens und des 'W' Zeichens umgekehrt, um zu veranschaulichen, dass die Reihenfolge der Zeichen im Array keine Rolle spielt. Beachten Sie, dass dieser Code das letzte Wort von MyString entfernt und einen Teil des ersten Wortes abzieht.

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)

Dieser Code zeigt He in der Konsole an.

Im folgenden Beispiel wird das letzte Wort einer Zeichenfolge mithilfe der TrimEnd Methode entfernt. In diesem Code folgt ein Komma dem Wort Hello und da das Komma nicht im Array der zu kürzenden Zeichen angegeben ist, endet die Kürzung am Komma.

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)

Dieser Code zeigt Hello, in der Konsole an.

TrimStart

Die String.TrimStart Methode ähnelt der String.TrimEnd Methode, mit der Ausnahme, dass sie eine neue Zeichenfolge erstellt, indem Zeichen vom Anfang eines vorhandenen Zeichenfolgenobjekts entfernt werden. Ein Array von Zeichen wird an die TrimStart Methode übergeben, um die zu entfernenden Zeichen anzugeben. Wie bei der TrimEnd Methode wirkt sich die Reihenfolge der Elemente im Zeichenarray nicht auf den Zuschneidvorgang aus. Der Trimmvorgang wird angehalten, wenn ein Zeichen gefunden wird, das nicht im Array angegeben ist.

Im folgenden Beispiel wird das erste Wort einer Zeichenfolge entfernt. In diesem Beispiel wird die Position des 'l' Zeichens und des 'H' Zeichens umgekehrt, um zu veranschaulichen, dass die Reihenfolge der Zeichen im Array keine Rolle spielt.

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)

Dieser Code zeigt World! in der Konsole an.

Entfernen

Die String.Remove Methode entfernt eine angegebene Anzahl von Zeichen, die an einer angegebenen Position in einer vorhandenen Zeichenfolge beginnen. Bei dieser Methode wird ein nullbasierter Index vorausgesetzt.

Im folgenden Beispiel werden 10 Zeichen aus einer Zeichenfolge entfernt, die an Position 5 eines nullbasierten Indexes der Zeichenfolge beginnt.

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!        

Ersetzen

Sie können auch ein angegebenes Zeichen oder eine Teilzeichenfolge aus einer Zeichenfolge entfernen, indem Sie die String.Replace(String, String) Methode aufrufen und eine leere Zeichenfolge (String.Empty) als Ersetzung angeben. Im folgenden Beispiel werden alle Kommas aus einer Zeichenfolge entfernt:

using System;

public class Example
{
   public static void Main()
   {
      String phrase = "a cold, dark night";
      Console.WriteLine($"Before: {phrase}");
      phrase = phrase.Replace(",", "");
      Console.WriteLine($"After: {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

Siehe auch