共用方式為


String.TrimStart 方法

定義

多載

TrimStart(ReadOnlySpan<Char>)

從目前字串移除範圍中指定的一組字元的所有前置專案。

TrimStart()

從目前字串中移除所有前置空格符。

TrimStart(Char)

從目前字串中移除指定字元的所有前置專案。

TrimStart(Char[])

從目前字串中移除陣列中指定的一組字元的所有前置專案。

TrimStart(ReadOnlySpan<Char>)

從目前字串移除範圍中指定的一組字元的所有前置專案。

public:
 System::String ^ TrimStart(ReadOnlySpan<char> trimChars);
public string TrimStart (scoped ReadOnlySpan<char> trimChars);
member this.TrimStart : ReadOnlySpan<char> -> string
Public Function TrimStart (trimChars As ReadOnlySpan(Of Char)) As String

參數

trimChars
ReadOnlySpan<Char>

要移除的 Unicode 字元範圍。

傳回

trimChars 參數中出現的所有字元之後,會從目前字串的開頭移除保留的字串。 如果 trimChars 是空的,則會改為移除空格符。 如果無法從目前的實例修剪任何字元,此方法會傳回未變更的目前實例。

適用於

TrimStart()

來源:
String.Manipulation.cs
來源:
String.Manipulation.cs
來源:
String.Manipulation.cs

從目前字串中移除所有前置空格符。

public:
 System::String ^ TrimStart();
public string TrimStart ();
member this.TrimStart : unit -> string
Public Function TrimStart () As String

傳回

在目前字串開頭移除所有空格符之後所保留的字串。 如果無法從目前的實例修剪任何字元,此方法會傳回未變更的目前實例。

備註

TrimStart 方法會從目前字串中移除所有前置空格符。 當遇到非空格符時,修剪作業會停止。 例如,如果目前的字串是 「abc xyz」,則 TrimStart 方法會傳回 「abc xyz」。

注意

如果 TrimStart 方法會從目前實例中移除任何字元,這個方法不會修改目前實例的值。 相反地,它會傳回新的字串,其中會移除目前實例中找到的所有前置空格符。

適用於

TrimStart(Char)

來源:
String.Manipulation.cs
來源:
String.Manipulation.cs
來源:
String.Manipulation.cs

從目前字串中移除指定字元的所有前置專案。

public:
 System::String ^ TrimStart(char trimChar);
public string TrimStart (char trimChar);
member this.TrimStart : char -> string
Public Function TrimStart (trimChar As Char) As String

參數

trimChar
Char

要移除的 Unicode 字元。

傳回

在所有出現 trimChar 字元之後保留的字串會從目前字串的開頭移除。 如果無法從目前的實例修剪任何字元,此方法會傳回未變更的目前實例。

備註

TrimStart(System.Char) 方法會從目前字串中移除所有前置 trimChar 字元。 當遇到未 trimChar 的字元時,修剪作業就會停止。 例如,如果 trimChar-,而目前的字串是 “---abc---xyz----”,則 TrimStart(System.Char) 方法會傳回 “abc---xyz----”。

注意

如果 TrimStart(System.Char) 方法會從目前實例中移除任何字元,這個方法不會修改目前實例的值。 相反地,它會傳回新的字串,其中會移除目前實例中找到的所有前置 trimChar 字元。

適用於

TrimStart(Char[])

來源:
String.Manipulation.cs
來源:
String.Manipulation.cs
來源:
String.Manipulation.cs

從目前字串中移除陣列中指定的一組字元的所有前置專案。

public:
 System::String ^ TrimStart(... cli::array <char> ^ trimChars);
public string TrimStart (params char[] trimChars);
public string TrimStart (params char[]? trimChars);
member this.TrimStart : char[] -> string
Public Function TrimStart (ParamArray trimChars As Char()) As String

參數

trimChars
Char[]

要移除的 Unicode 字元陣列,或 null

傳回

trimChars 參數中出現的所有字元之後,會從目前字串的開頭移除保留的字串。 如果 trimCharsnull 或空陣列,則會改為移除空格符。 如果無法從目前的實例修剪任何字元,此方法會傳回未變更的目前實例。

範例

下列範例示範 TrimStart 方法的基本功能:

// TrimStart examples
string lineWithLeadingSpaces = "   Hello World!";
string lineWithLeadingSymbols = "$$$$Hello World!";
string lineWithLeadingUnderscores = "_____Hello World!";
string lineWithLeadingLetters = "xxxxHello World!";
string lineAfterTrimStart = string.Empty;

// Make it easy to print out and work with all of the examples
string[] lines = { lineWithLeadingSpaces, lineWithLeadingSymbols, lineWithLeadingUnderscores, lineWithLeadingLetters };

foreach (var line in lines)
{
    Console.WriteLine($"This line has leading characters: {line}");
}
// Output:
// This line has leading characters:    Hello World!
// This line has leading characters: $$$$Hello World!
// This line has leading characters: _____Hello World!
// This line has leading characters: xxxxHello World!

// A basic demonstration of TrimStart in action
lineAfterTrimStart = lineWithLeadingSpaces.TrimStart(' ');
Console.WriteLine($"This is the result after calling TrimStart: {lineAfterTrimStart}");
// This is the result after calling TrimStart: Hello World!   

// Since TrimStart accepts a character array of leading items to be removed as an argument,
// it's possible to do things like trim multiple pieces of data that each have different 
// leading characters,
foreach (var lineToEdit in lines)
{
    Console.WriteLine(lineToEdit.TrimStart(' ', '$', '_', 'x'));
}
// Result for each: Hello World!

// or handle pieces of data that have multiple kinds of leading characters 
var lineToBeTrimmed = "__###__ John Smith";
lineAfterTrimStart = lineToBeTrimmed.TrimStart('_', '#', ' ');
Console.WriteLine(lineAfterTrimStart);
// Result: John Smith
// TrimStart examples
let lineWithLeadingSpaces = "   Hello World!"
let lineWithLeadingSymbols = "$$$$Hello World!"
let lineWithLeadingUnderscores = "_____Hello World!"
let lineWithLeadingLetters = "xxxxHello World!"

// Make it easy to print out and work with all of the examples
let lines = [| lineWithLeadingSpaces; lineWithLeadingSymbols; lineWithLeadingUnderscores; lineWithLeadingLetters |]

for line in lines do
    printfn $"This line has leading characters: {line}"
// Output:
// This line has leading characters:    Hello World!
// This line has leading characters: $$$$Hello World!
// This line has leading characters: _____Hello World!
// This line has leading characters: xxxxHello World!

// A basic demonstration of TrimStart in action
let lineAfterTrimStart = lineWithLeadingSpaces.TrimStart ' '
printfn $"This is the result after calling TrimStart: {lineAfterTrimStart}"
// This is the result after calling TrimStart: Hello World!   

// Since TrimStart accepts a character array of leading items to be removed as an argument,
// it's possible to do things like trim multiple pieces of data that each have different 
// leading characters,
for lineToEdit in lines do
    printfn $"""{lineToEdit.TrimStart(' ', '$', '_', 'x')}"""
// Result for each: Hello World!

// or handle pieces of data that have multiple kinds of leading characters 
let lineToBeTrimmed = "__###__ John Smith"
let lineAfterTrimStart2 = lineToBeTrimmed.TrimStart('_', '#', ' ')
printfn $"{lineAfterTrimStart2}"
// Result: John Smith
Public Sub Main()
   ' TrimStart Examples
   Dim lineWithLeadingSpaces as String = "   Hello World!"
   Dim lineWithLeadingSymbols as String = "$$$$Hello World!"
   Dim lineWithLeadingUnderscores as String = "_____Hello World!"
   Dim lineWithLeadingLetters as String = "xxxxHello World!"
   Dim lineAfterTrimStart = String.Empty

   ' Make it easy to print out and work with all of the examples
   Dim lines As String() = { lineWithLeadingSpaces, line lineWithLeadingSymbols, lineWithLeadingUnderscores, lineWithLeadingLetters }

   For Each line As String in lines
     Console.WriteLine($"This line has leading characters: {line}")
   Next
   ' Output:
   ' This line has leading characters:    Hello World!
   ' This line has leading characters: $$$$Hello World!
   ' This line has leading characters: _____Hello World!
   ' This line has leading characters: xxxxHello World!

   Console.WriteLine($"This line has leading spaces: {lineWithLeadingSpaces}")
   ' This line has leading spaces:   Hello World!

   ' A basic demonstration of TrimStart in action
   lineAfterTrimStart = lineWithLeadingSpaces.TrimStart(" "c)
   Console.WriteLine($"This is the result after calling TrimStart: {lineAfterTrimStart}")
   ' This is the result after calling TrimStart: Hello World!

   ' Since TrimStart accepts a character array of leading items to be removed as an argument,
   ' it's possible to do things like trim multiple pieces of data that each have different 
   ' leading characters,
   For Each lineToEdit As String in lines
     Console.WriteLine(lineToEdit.TrimStart(" "c, "$"c, "_"c, "x"c ))
   Next
   ' Result for each: Hello World!

   ' or handle pieces of data that have multiple kinds of leading characters
   Dim lineToBeTrimmed as String = "__###__ John Smith"
   lineAfterTrimStart = lineToBeTrimmed.TrimStart("_"c , "#"c , " "c)
   Console.WriteLine(lineAfterTrimStart)
   ' Result: John Smith

 End Sub

下列範例會使用 TrimStart 方法來修剪原始程式碼行的空格元和批注字元。 StripComments 方法會包裝對 TrimStart 的呼叫,並傳遞包含空格和批注字元的字元陣列,這是 Visual Basic 中的單引號字元,以及 C# 或 F# 中的斜線(/ )。 評估字串是否為批注時,也會呼叫 TrimStart 方法來移除前置空格符。

public static string[] StripComments(string[] lines)
{
    List<string> lineList = new List<string>();
    foreach (string line in lines)
    {
        if (line.TrimStart(' ').StartsWith("//"))
            lineList.Add(line.TrimStart(' ', '/'));
    }
    return lineList.ToArray();
}
let stripComments (lines: #seq<string>) =
    [|  for line in lines do
            if line.TrimStart(' ').StartsWith "//" then
                line.TrimStart(' ', '/') |]
Public Shared Function StripComments(lines() As String) As String()
   Dim lineList As New List(Of String)
   For Each line As String In lines
      If line.TrimStart(" "c).StartsWith("'") Then
         linelist.Add(line.TrimStart("'"c, " "c))
      End If
   Next
   Return lineList.ToArray()
End Function

下列範例接著說明對 StripComments 方法的呼叫。

public static void Main()
{
    string[] lines = {"using System;",
                   "",
                   "public class HelloWorld",
                   "{",
                   "   public static void Main()",
                   "   {",
                   "      // This code displays a simple greeting",
                   "      // to the console.",
                   "      Console.WriteLine(\"Hello, World.\");",
                   "   }",
                   "}"};
    Console.WriteLine("Before call to StripComments:");
    foreach (string line in lines)
        Console.WriteLine("   {0}", line);

    string[] strippedLines = StripComments(lines);
    Console.WriteLine("After call to StripComments:");
    foreach (string line in strippedLines)
        Console.WriteLine("   {0}", line);
}
// This code produces the following output to the console:
//    Before call to StripComments:
//       using System;
//   
//       public class HelloWorld
//       {
//           public static void Main()
//           {
//               // This code displays a simple greeting
//               // to the console.
//               Console.WriteLine("Hello, World.");
//           }
//       }  
//    After call to StripComments:
//       This code displays a simple greeting
//       to the console.
let lines = 
    [| "module HelloWorld"
       ""
       "[<EntryPoint>]"
       "let main _ ="
       "    // This code displays a simple greeting"
       "    // to the console."
       "    printfn \"Hello, World.\""
       "    0" |]
printfn "Before call to StripComments:"
for line in lines do
    printfn $"   {line}"

let strippedLines = stripComments lines
printfn "After call to StripComments:"
for line in strippedLines do
    printfn $"   {line}"
// This code produces the following output to the console:
//    Before call to StripComments:
//       module HelloWorld
//
//       [<EntryPoint>]
//       let main _ =
//           // This code displays a simple greeting
//           // to the console.
//           printfn "Hello, World."
//           0
//    After call to StripComments:
//       This code displays a simple greeting
//       to the console.
Public Shared Sub Main()
   Dim lines() As String = {"Public Module HelloWorld", _
                            "   Public Sub Main()", _
                            "      ' This code displays a simple greeting", _
                            "      ' to the console.", _
                            "      Console.WriteLine(""Hello, World."")", _
                            "   End Sub", _
                            " End Module"}
   Console.WriteLine("Code before call to StripComments:")
   For Each line As String In lines
      Console.WriteLine("   {0}", line)                         
   Next                            
   
   Dim strippedLines() As String = StripComments(lines) 
   Console.WriteLine("Code after call to StripComments:")
   For Each line As String In strippedLines
      Console.WriteLine("   {0}", line)                         
   Next                            
End Sub
' This code produces the following output to the console:
'    Code before call to StripComments:
'       Public Module HelloWorld
'          Public Sub Main()
'             ' This code displays a simple greeting
'             ' to the console.
'             Console.WriteLine("Hello, World.")
'          End Sub
'       End Module
'    Code after call to StripComments:
'       This code displays a simple greeting
'       to the console.

備註

TrimStart(System.Char[]) 方法會從目前字串中移除 trimChars 參數中的所有前置字元。 當遇到不在 trimChars 中的字元時,修剪作業就會停止。 例如,如果目前的字串是 「123abc456xyz789」,且 trimChars 包含 “1” 到 “9” 的數位,則 TrimStart(System.Char[]) 方法會傳回 “abc456xyz789”。

注意

如果 TrimStart(System.Char[]) 方法會從目前實例中移除任何字元,這個方法不會修改目前實例的值。 相反地,它會傳回新的字串,其中會移除目前實例中找到之 trimChars 參數中的所有前置字元。

給呼叫者的注意事項

.NET Framework 3.5 SP1 和舊版會維護一份內部空格符清單,如果 trimCharsnull 或空陣列,此方法會修剪這個清單。 從 .NET Framework 4 開始,如果 trimCharsnull 或空陣列,此方法會修剪所有 Unicode 空格符(也就是當字元傳遞至 IsWhiteSpace(Char) 方法時產生 true 傳回值的字元)。 由於這項變更,.NET Framework 3.5 SP1 和舊版中的 Trim() 方法會移除兩個字元:零寬度空間 (U+200B) 和零寬度 NO-BREAK SPACE (U+FEFF),.NET Framework 4 和更新版本中的 Trim() 方法不會移除。 此外,.NET Framework 3.5 SP1 和舊版中的 Trim() 方法不會修剪三個 Unicode 空格符:蒙古文 VOWEL 分隔符(U+180E)、NARROW NO-BREAK SPACE (U+202F)和中數學空間 (U+205F)。

另請參閱

適用於