分享方式:


修剪和移除 .NET 中字串中的字元

如果您要將句子剖析成個別單字,最後可能會遇到單字兩端有空格的情況。 在此情況下,您可以使用 類別中的 System.String 其中一個修剪方法,從字串中指定的位置移除任意數目的空格或其他字元。 下表描述可用的修剪方法:

方法名稱 使用
String.Trim 從字串開頭和結尾移除字元陣列中指定的空格元或字元。
String.TrimEnd 從字串結尾移除字元陣列中指定的字元。
String.TrimStart 從字串開頭移除字元陣列中指定的字元。
String.Remove 從字串中的指定索引位置移除指定的字元數。

修剪

您可以使用 方法,輕鬆地從字串 String.Trim 的兩端移除空格符,如下列範例所示:

string MyString = " Big   ";
Console.WriteLine($"Hello{MyString}World!");
string TrimString = MyString.Trim();
Console.WriteLine($"Hello{TrimString}World!");
//       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

修剪結束

方法 String.TrimEnd 會從字串結尾移除字元,並建立新的字串物件。 字元陣列會傳遞至這個方法,以指定要移除的字元。 字元陣列中元素的順序不會影響修剪作業。 當找到陣列中未指定的字元時,修剪會停止。

下列範例會使用 TrimEnd 方法移除字串的最後一個字母。 在此範例中,'r'字元和'W'字元的位置被交換,以說明陣列中的字元順序並不會影響結果。 請注意,此程式碼會移除 MyString 的最後一個字和第一個字的一部分。

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!";
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, 至主控台。

修剪開始

方法 String.TrimStartString.TrimEnd 方法類似,不同之處在於它會從現有字串對象的開頭移除字元,以建立新的字串。 字元陣列會傳遞至TrimStart方法,以指定要移除的字元。 TrimEnd如同 方法,字元陣列中的元素順序不會影響修剪作業。 當找到陣列中未指定的字元時,修剪會停止。

下列範例會移除字串的第一個字。 在此範例中,'l'字元和'H'字元的位置被交換,以說明陣列中的字元順序並不會影響結果。

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!
Dim MyString As String = "Hello Beautiful World!"
Console.WriteLine(MyString.Remove(5, 10))
' The example displays the following output:
'         Hello World!        

替換

您也可以呼叫 String.Replace(String, String) 方法,並將空字串指定String.Empty為取代,以從字串中移除指定的字元或子字串。 下列範例會從字串中移除所有逗號:

using System;

public class Example
{
   public static void Main()
   {
      String phrase = "a cold, dark night";
      Console.WriteLine($"Before: {phrase}");
      phrase = phrase.Replace(",", "");
      Console.WriteLine($"After: {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

另請參閱