剪裁和移除字符

如果将一个句子分析成单个的单词,则最后的结果可能是单词的一端或另一端带有空格(也称为空白)。 在这种情形下,可以使用 System.String 类中的剪裁方法之一来从字符串中的指定位置移除任何数量的空格或其他字符。 下表描述了可用的剪裁方法。

方法名

使用

String.Trim

从字符串的开头和结尾处移除空白。

String.TrimEnd

从字符串的结尾处移除在字符数组中指定的字符。

String.TrimStart

从字符串的开头移除在字符数组中指定的字符。

String.Remove

从字符串中的指定索引位置移除指定数量的字符。

Trim

使用 String.Trim 方法可以很方便地从字符串的两端移除空白,如下面的示例所示。

Dim MyString As String = " Big   "
Console.WriteLine("Hello{0}World!", MyString)
Dim TrimString As String = MyString.Trim()
Console.WriteLine("Hello{0}World!", TrimString)
string MyString = " Big   ";
Console.WriteLine("Hello{0}World!", MyString);
string TrimString = MyString.Trim();
Console.WriteLine("Hello{0}World!", TrimString);
String^ MyString = " Big   ";
Console::WriteLine("Hello{0}World!", MyString);
String^ TrimString = MyString->Trim();
Console::WriteLine("Hello{0}World!", TrimString);
string MyString = " Big   ";
Console.WriteLine("Hello{0}World!", MyString);
string TrimString = MyString.Trim();
Console.WriteLine("Hello{0}World!", TrimString);

这段代码将以下两行显示到控制台。

Hello Big   World!
HelloBigWorld! 

TrimEnd

String.TrimEnd 方法从字符串的结尾移除字符,同时创建新的字符串对象。 通过为此方法传递一个字符数组来指定要移除的字符。 字符数组中的元素顺序并不影响剪裁操作。 当找到未在数组中指定的字符时,剪裁停止。

下面的示例使用 TrimEnd 方法移除字符串最后面的字母。 在此示例中,'r' 字符和 'W' 字符的位置反转,以阐释数组中字符的顺序并不重要。 请注意,此代码移除 MyString 的最后一个单词和第一个单词的一部分。

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)
string MyString = "Hello World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);
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);

此代码将 He 显示到控制台。

下面的示例使用 TrimEnd 方法移除字符串的最后一个单词。 在此代码中,单词 Hello 后尾随一个逗号,而由于在要剪除的字符的数组中没有指定逗号,因此剪裁在逗号处结束。

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)
string MyString = "Hello, World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);
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);

此代码将 Hello, 显示到控制台。

TrimStart

String.TrimStart 方法类似于 String.TrimEnd 方法,不同之处在于它通过从现有字符串对象的开头移除字符来创建新的字符串。 通过向 TrimStart 方法传递一个字符数组来指定要移除的字符。 使用 TrimEnd 方法时,字符数组中元素的顺序并不影响剪裁操作。 当找到未在数组中指定的字符时,剪裁停止。

下面的示例移除字符串的第一个单词。 在此示例中,颠倒了 'l' 字符和 'H' 字符的位置,以指明字符在数组中的顺序并不重要。

Dim MyString As String = "Hello World!"
Dim MyChar() As Char = {"e","H","l","o"," " }
Dim NewString As String = MyString.TrimStart(MyChar)
Console.WriteLine(NewString)
string MyString = "Hello World!";
char[] MyChar = {'e', 'H','l','o',' ' };
string NewString = MyString.TrimStart(MyChar);
Console.WriteLine(NewString);
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);

此代码将 World! 显示到控制台。

移除

String.Remove 方法,从现有字符串的指定位置开始,移除指定数量的字符。 此方法采用从零开始的索引。

下面的示例从字符串的从零开始的索引的第五个位置开始,从该字符串中移除十个字符。

Dim MyString As String = "Hello Beautiful World!"
Console.WriteLine(MyString.Remove(5,10))
string MyString = "Hello Beautiful World!";
Console.WriteLine(MyString.Remove(5,10));
String^ MyString = "Hello Beautiful World!";
Console::WriteLine(MyString->Remove(5,10));
string MyString = "Hello Beautiful World!";
Console.WriteLine(MyString.Remove(5,10));

此代码将 Hello World! 显示到控制台。

请参见

其他资源

基本字符串操作