Trimma och ta bort tecken från strängar i .NET

Om du parsar en mening i enskilda ord kan det hända att du får ord som har tomma blanksteg (kallas även blanksteg) i endera änden av ordet. I det här fallet kan du använda någon av trimningsmetoderna System.String i klassen för att ta bort valfritt antal blanksteg eller andra tecken från en angiven position i strängen. I följande tabell beskrivs tillgängliga trimmetoder:

Metodnamn Använd
String.Trim Tar bort blanksteg eller tecken som anges i en matris med tecken från början och slutet av en sträng.
String.TrimEnd Tar bort tecken som anges i en matris med tecken från slutet av en sträng.
String.TrimStart Tar bort tecken som anges i en matris med tecken från början av en sträng.
String.Remove Tar bort ett angivet antal tecken från en angiven indexposition i en sträng.

Trimma

Du kan enkelt ta bort blanksteg från båda ändar av en sträng med hjälp String.Trim av metoden, som du ser i följande exempel:

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!        

Du kan också ta bort tecken som du anger i en teckenmatris från början och slutet av en sträng. Följande exempel tar bort blankstegstecken, punkter och asterisker:

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

Metoden String.TrimEnd tar bort tecken från slutet av en sträng och skapar ett nytt strängobjekt. En matris med tecken skickas till den här metoden för att ange de tecken som ska tas bort. Ordningen på elementen i teckenmatrisen påverkar inte trimningen. Trimningen stoppas när ett tecken som inte anges i matrisen hittas.

I följande exempel tar du bort de sista bokstäverna i en sträng med hjälp av TrimEnd metoden . I det här exemplet är tecknets och 'W' tecknets 'r' position omvända för att illustrera att teckenordningen i matrisen inte spelar någon roll. Observera att den här koden tar bort sista ordet MyString i plus en del av den första.

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)

Den här koden visas He för konsolen.

I följande exempel tar du bort det sista ordet i TrimEnd en sträng med hjälp av metoden . I den här koden följer ett kommatecken ordet Hello och eftersom kommatecknet inte anges i matrisen med tecken som ska trimmas, slutar trimningen vid kommatecknet.

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)

Den här koden visas Hello, för konsolen.

TrimStart

Metoden String.TrimStart liknar metoden förutom att den String.TrimEnd skapar en ny sträng genom att ta bort tecken från början av ett befintligt strängobjekt. En matris med tecken skickas till TrimStart metoden för att ange de tecken som ska tas bort. Precis som TrimEnd med metoden påverkar inte ordningen på elementen i teckenmatrisen trimningen. Trimningen stoppas när ett tecken som inte anges i matrisen hittas.

I följande exempel tar du bort det första ordet i en sträng. I det här exemplet är tecknets och 'H' tecknets 'l' position omvända för att illustrera att teckenordningen i matrisen inte spelar någon roll.

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)

Den här koden visas World! för konsolen.

Ta bort

Metoden String.Remove tar bort ett angivet antal tecken som börjar vid en angiven position i en befintlig sträng. Den här metoden förutsätter ett nollbaserat index.

Följande exempel tar bort 10 tecken från en sträng som börjar vid position fem av ett nollbaserat index för strängen.

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

Du kan också ta bort ett angivet tecken eller en delsträng från en sträng genom att anropa String.Replace(String, String) metoden och ange en tom sträng (String.Empty) som ersättning. Följande exempel tar bort alla kommatecken från en sträng:

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

Se även