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