Tekens knippen en verwijderen uit tekenreeksen in .NET

Als u een zin in afzonderlijke woorden parseert, kunt u eindigen met woorden met lege spaties (ook wel witruimten genoemd) aan beide uiteinden van het woord. In deze situatie kunt u een van de trimmethoden in de System.String klasse gebruiken om een willekeurig aantal spaties of andere tekens te verwijderen van een opgegeven positie in de tekenreeks. In de volgende tabel worden de beschikbare trimmethoden beschreven:

Methodenaam Gebruik
String.Trim Hiermee verwijdert u spaties of tekens die zijn opgegeven in een matrix met tekens vanaf het begin en einde van een tekenreeks.
String.TrimEnd Hiermee verwijdert u tekens die zijn opgegeven in een matrix met tekens aan het einde van een tekenreeks.
String.TrimStart Hiermee verwijdert u tekens die zijn opgegeven in een matrix met tekens vanaf het begin van een tekenreeks.
String.Remove Hiermee verwijdert u een opgegeven aantal tekens uit een opgegeven indexpositie in een tekenreeks.

Trim

U kunt witruimten eenvoudig uit beide uiteinden van een tekenreeks verwijderen met behulp van de String.Trim methode, zoals wordt weergegeven in het volgende voorbeeld:

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!        

U kunt ook tekens verwijderen die u in een tekenmatrix opgeeft vanaf het begin en einde van een tekenreeks. In het volgende voorbeeld worden spatietekens, punten en sterretjes verwijderd:

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

Met String.TrimEnd de methode worden tekens verwijderd uit het einde van een tekenreeks, waardoor een nieuw tekenreeksobject wordt gemaakt. Aan deze methode wordt een matrix met tekens doorgegeven om de tekens op te geven die moeten worden verwijderd. De volgorde van de elementen in de tekenmatrix heeft geen invloed op de trimbewerking. De trim stopt wanneer een teken dat niet is opgegeven in de matrix wordt gevonden.

In het volgende voorbeeld worden de laatste letters van een tekenreeks verwijderd met behulp van de TrimEnd methode. In dit voorbeeld worden de positie van het 'r' teken en het 'W' teken omgekeerd om te laten zien dat de volgorde van tekens in de matrix niet uitmaakt. U ziet dat met deze code het laatste woord van MyString plus een deel van het eerste wordt verwijderd.

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)

Deze code wordt weergegeven He in de console.

In het volgende voorbeeld wordt het laatste woord van een tekenreeks verwijderd met behulp van de TrimEnd methode. In deze code volgt een komma het woord Hello en omdat de komma niet is opgegeven in de matrix met tekens die moeten worden bijsnijden, eindigt de trim bij de komma.

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)

Deze code wordt weergegeven Hello, in de console.

TrimStart

De String.TrimStart methode is vergelijkbaar met de String.TrimEnd methode, behalve dat er een nieuwe tekenreeks wordt gemaakt door tekens te verwijderen uit het begin van een bestaand tekenreeksobject. Er wordt een matrix met tekens doorgegeven aan de TrimStart methode om de tekens op te geven die moeten worden verwijderd. Net als bij de TrimEnd methode heeft de volgorde van de elementen in de tekenmatrix geen invloed op de trimbewerking. De trim stopt wanneer een teken dat niet is opgegeven in de matrix wordt gevonden.

In het volgende voorbeeld wordt het eerste woord van een tekenreeks verwijderd. In dit voorbeeld worden de positie van het 'l' teken en het 'H' teken omgekeerd om te laten zien dat de volgorde van tekens in de matrix niet uitmaakt.

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)

Deze code wordt weergegeven World! in de console.

Verwijderen

Met de String.Remove methode wordt een opgegeven aantal tekens verwijderd dat begint op een opgegeven positie in een bestaande tekenreeks. Bij deze methode wordt uitgegaan van een op nul gebaseerde index.

In het volgende voorbeeld worden 10 tekens uit een tekenreeks verwijderd die begint op positie vijf van een op nul gebaseerde index van de tekenreeks.

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!        

Replace

U kunt ook een opgegeven teken of subtekenreeks uit een tekenreeks verwijderen door de String.Replace(String, String) methode aan te roepen en een lege tekenreeks (String.Empty) op te geven als vervanging. In het volgende voorbeeld worden alle komma's uit een tekenreeks verwijderd:

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

Zie ook