Обрезка и удаление символов из строк в .NET
Если вы анализируете предложение на отдельные слова, вы можете в конечном итоге иметь пустые пробелы (также называемые пробелами) в любом конце слова. В этой ситуации можно использовать один из методов обрезки в System.String
классе, чтобы удалить любое количество пробелов или других символов из указанной позиции в строке. В следующей таблице описаны доступные методы обрезки:
Имя метода | Использование |
---|---|
String.Trim | Удаление пробелов или знаков, указанных в массиве знаков, из начала и конца строки. |
String.TrimEnd | Удаление символов, указанных в массиве символов, в конце строки. |
String.TrimStart | Удаление символов, указанных в массиве символов, в начале строки. |
String.Remove | Удаление указанного количества символов в указанной позиции индекса в строке. |
Trim
Вы можете легко удалить пробелы из обеих сторон строки с помощью String.Trim метода, как показано в следующем примере:
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!
Кроме того, можно удалить символы, указанные в массиве знаков, из начала и конца строки. В следующем примере удаляются символы пробела, точки и звездочки:
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
Метод String.TrimEnd
удаляет символы из конца строки, создавая новый объект строки. Для указания символов, которые следует удалять, в этот метод передается массив символов. Порядок элементов в массиве символов не влияет на операцию обрезки. В случае обнаружения символа, который отсутствует в массиве, операция останавливается.
В следующем примере удаляются последние буквы строки с помощью TrimEnd
метода. В этом примере позиция символа 'r'
и 'W'
символа обратно иллюстрируют, что порядок символов в массиве не имеет значения. Обратите внимание, что этот код удаляет последнее слово MyString
и часть первого.
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)
Этот код выводит на консоль значение He
.
В следующем примере удаляется последнее слово строки с помощью TrimEnd
метода. В этом коде запятая следует слову Hello
, и потому что запятая не указана в массиве символов для обрезки, обрезка заканчивается запятой.
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)
Этот код выводит на консоль значение Hello,
.
TrimStart
Метод String.TrimStart
аналогичен String.TrimEnd
методу, за исключением того, что он создает новую строку, удаляя символы с начала существующего объекта строки. Массив символов передается TrimStart
методу, чтобы указать символы, которые нужно удалить. Как и в случае с методом TrimEnd
, порядок элементов в массиве символов не влияет на операцию обрезки. В случае обнаружения символа, который отсутствует в массиве, операция останавливается.
В следующем примере удаляется первое слово в строке. В этом примере позиция символа 'l'
и 'H'
символа обратно иллюстрируют, что порядок символов в массиве не имеет значения.
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)
Этот код выводит на консоль значение World!
.
Удалить
Метод String.Remove удаляет указанное количество знаков, начиная с указанного места в существующей строке. Этот метод подразумевает, что отсчет индекса начинается с нуля.
В следующем примере из строки удаляется 10 символов, начиная с позиции пяти из отсчитываемого от нуля индекса строки.
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
Чтобы удалить из строки указанный символ или подстроку, можно вызвать метод String.Replace(String, String) и указать пустую строку (String.Empty) в качестве замены. В следующем примере удаляются все запятые из строки:
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