Przycinanie i usuwanie znaków z ciągów na platformie .NET

Jeśli analizujesz zdanie w pojedynczych słowach, możesz skończyć się wyrazami, które mają puste spacje (nazywane również białymi spacjami) na każdym końcu słowa. W takiej sytuacji można użyć jednej z metod trim w System.String klasie, aby usunąć dowolną liczbę spacji lub innych znaków z określonej pozycji w ciągu. W poniższej tabeli opisano dostępne metody przycinania:

Nazwa metody Używanie
String.Trim Usuwa białe spacje lub znaki określone w tablicy znaków od początku i na końcu ciągu.
String.TrimEnd Usuwa znaki określone w tablicy znaków z końca ciągu.
String.TrimStart Usuwa znaki określone w tablicy znaków od początku ciągu.
String.Remove Usuwa określoną liczbę znaków z określonej pozycji indeksu w ciągu.

Trim

Można łatwo usunąć białe spacje z obu końców ciągu przy użyciu String.Trim metody , jak pokazano w poniższym przykładzie:

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!        

Można również usunąć znaki określone w tablicy znaków od początku i końca ciągu. Poniższy przykład usuwa znaki odstępu, kropki i gwiazdki:

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

Metoda TrimEnd

Metoda String.TrimEnd usuwa znaki z końca ciągu, tworząc nowy obiekt ciągu. Tablica znaków jest przekazywana do tej metody w celu określenia znaków, które mają zostać usunięte. Kolejność elementów w tablicy znaków nie ma wpływu na operację przycinania. Przycinanie zatrzymuje się, gdy zostanie znaleziony znak, który nie został określony w tablicy.

Poniższy przykład usuwa ostatnie litery ciągu przy użyciu TrimEnd metody . W tym przykładzie pozycja 'r' znaku i 'W' znaku są odwrócone, aby zilustrować, że kolejność znaków w tablicy nie ma znaczenia. Zwróć uwagę, że ten kod usuwa ostatnie słowo MyString plus części pierwszej.

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)

Ten kod jest wyświetlany He w konsoli programu .

Poniższy przykład usuwa ostatnie słowo ciągu przy użyciu TrimEnd metody . W tym kodzie przecinek następuje po słowie Hello i ponieważ przecinek nie jest określony w tablicy znaków do przycinania, przycinanie kończy się przecinkiem.

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)

Ten kod jest wyświetlany Hello, w konsoli programu .

Metoda TrimStart

Metoda jest podobna String.TrimStart do String.TrimEnd metody, z tą różnicą, że tworzy nowy ciąg, usuwając znaki od początku istniejącego obiektu ciągu. Tablica znaków jest przekazywana do metody w TrimStart celu określenia znaków, które mają zostać usunięte. Podobnie jak w przypadku TrimEnd metody, kolejność elementów w tablicy znaków nie ma wpływu na operację przycinania. Przycinanie zatrzymuje się, gdy zostanie znaleziony znak, który nie został określony w tablicy.

Poniższy przykład usuwa pierwsze słowo ciągu. W tym przykładzie pozycja 'l' znaku i 'H' znaku są odwrócone, aby zilustrować, że kolejność znaków w tablicy nie ma znaczenia.

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)

Ten kod jest wyświetlany World! w konsoli programu .

Usuń

Metoda String.Remove usuwa określoną liczbę znaków rozpoczynających się na określonej pozycji w istniejącym ciągu. W tej metodzie przyjęto założenie, że indeks oparty na zerze.

Poniższy przykład usuwa 10 znaków z ciągu rozpoczynającego się na pozycji piątej z zerowego indeksu ciągu.

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

Można również usunąć określony znak lub podciąg z ciągu, wywołując String.Replace(String, String) metodę i określając pusty ciąg (String.Empty) jako zamianę. Poniższy przykład usuwa wszystkie przecinki z ciągu:

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

Zobacz też