Karakterek levágása és eltávolítása sztringekből a .NET-ben
Ha egy mondatot egyes szavakba elemez, akkor a szavak végén üres szóközök (más néven fehér szóközök) is megjelenhetnek. Ebben az esetben az osztály egyik vágási módszerével System.String
eltávolíthat tetszőleges számú szóközt vagy egyéb karaktert a sztring adott pozíciójából. Az alábbi táblázat a rendelkezésre álló vágási módszereket ismerteti:
Metódus neve | Használat |
---|---|
String.Trim | Eltávolítja a karaktertömbben megadott üres szóközöket vagy karaktereket a sztring elejétől és végétől. |
String.TrimEnd | Eltávolítja a karaktertömbben megadott karaktereket a sztring végéről. |
String.TrimStart | Eltávolítja a karaktertömbben megadott karaktereket a sztring elejéről. |
String.Remove | Adott számú karakter eltávolítása egy sztring adott indexpozíciójából. |
Trim
A metódussal String.Trim könnyen eltávolíthat fehér szóközöket egy sztring mindkét végéből, ahogyan az az alábbi példában látható:
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!
A karaktertömbben megadott karaktereket a sztring elejétől és végétől is eltávolíthatja. Az alábbi példa eltávolítja a szóköz karaktereket, a pontokat és a csillagokat:
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
A String.TrimEnd
metódus eltávolítja a karaktereket egy sztring végéről, és létrehoz egy új sztringobjektumot. A rendszer a metódusnak egy karaktertömböt ad át az eltávolítandó karakterek megadásához. A karaktertömb elemeinek sorrendje nem befolyásolja a vágási műveletet. A vágás leáll, ha a tömbben nem megadott karakter található.
Az alábbi példa egy sztring utolsó betűit távolítja el a TrimEnd
metódus használatával. Ebben a példában a karakter és a 'r'
'W'
karakter pozíciója megfordítva mutatja, hogy a tömbben lévő karakterek sorrendje nem számít. Figyelje meg, hogy ez a kód eltávolítja az első plusz részének MyString
utolsó szavát.
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)
Ez a kód megjelenik He
a konzolon.
Az alábbi példa eltávolítja egy sztring utolsó szavát a TrimEnd
metódus használatával. Ebben a kódban egy vessző követi a szót Hello
, és mivel a vessző nincs megadva a vágandó karakterek tömbjében, a vágás a vesszővel végződik.
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)
Ez a kód megjelenik Hello,
a konzolon.
TrimStart
A String.TrimStart
metódus hasonló a metódushoz, azzal a String.TrimEnd
kivételével, hogy új sztringet hoz létre úgy, hogy eltávolítja a karaktereket egy meglévő sztringobjektum elejéről. A rendszer egy karaktertömböt ad át a TrimStart
metódusnak az eltávolítandó karakterek megadásához. A metódushoz TrimEnd
hasonlóan a karaktertömb elemeinek sorrendje sem befolyásolja a vágási műveletet. A vágás leáll, ha a tömbben nem megadott karakter található.
Az alábbi példa eltávolítja egy sztring első szavát. Ebben a példában a karakter és a 'l'
'H'
karakter pozíciója megfordítva mutatja, hogy a tömbben lévő karakterek sorrendje nem számít.
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)
Ez a kód megjelenik World!
a konzolon.
Eltávolítás
A String.Remove metódus eltávolít egy megadott számú karaktert, amelyek egy meglévő sztring adott helyén kezdődnek. Ez a metódus nulla alapú indexet feltételez.
Az alábbi példa 10 karaktert távolít el egy sztringből, amely a sztring nulla alapú indexének 5. helyén kezdődik.
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
Egy megadott karaktert vagy sztringrészt úgy is eltávolíthat, hogy meghívja a String.Replace(String, String) metódust, és helyettesítőként egy üres sztringet (String.Empty) ad meg. Az alábbi példa az összes vesszőt eltávolítja egy sztringből:
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