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

Lásd még