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