如何使用 C# 中的 String.Split 來分隔字串
String.Split 方法會根據一或多個分隔符號來分割輸入字串,以建立子字串陣列。 此方法通常是分隔字組界限上字串的最簡單方式。 其也用來分割其他特定字元或字串上的字串。
注意
本文中的 C# 範例會在 Try.NET 內嵌程式碼執行器和測試區執行。 選取 [執行] 按鈕以在互動式視窗中執行範例。 執行程式碼之後,您便可以修改它,並再選取一次 [執行] 來執行修改過的程式碼。 修改過的程式碼會在互動式視窗中執行,或是如果編譯失敗的話,互動式視窗會顯示所有 C# 編譯器錯誤訊息。
提示
您可以使用 GitHub Copilot,然後透過 AI 協助
String.Split 範例
下列程式碼將常用詞語分割成每個字組的字串陣列。
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
每個分隔符號字元執行個體都會產生已傳回陣列中的值。 由於 C# 中的陣列會從零開始編號,陣列中的每個字串都會從 0 編製索引到 Array.Length 屬性傳回的值減 1:
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
for (int i = 0; i < words.Length; i++)
{
System.Console.WriteLine($"Index {i}: <{words[i]}>");
}
連續分隔符號字元會產生空字串,作為已傳回陣列中的值。 您可以在下列範例中看到如何建立空字串,而這會使用空白字元作為分隔符號。
string phrase = "The quick brown fox jumps over the lazy dog.";
string[] words = phrase.Split(' ');
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
此行為可以更輕鬆地使用格式,例如代表表格式資料的逗號分隔值 (CSV) 檔案。 連續的逗號表示空白資料行。
您可以傳遞選擇性 StringSplitOptions.RemoveEmptyEntries 參數,以排除已傳回陣列中的任何空字串。 針對更複雜處理的已傳回集合,您可以使用 LINQ 來操作結果序列。
String.Split 可以使用多個分隔符號字元。 下列範例會使用空格、逗號、句號、冒號和定位點作為區隔字元,而這些會以陣列形式傳遞至 Split。 程式碼底部的迴圈會顯示所傳回陣列中的每個字組。
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo three:four,five six seven";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
System.Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
任何分隔符號的連續執行個體都會產生輸出陣列中的空字串:
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo :,five six seven";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(delimiterChars);
System.Console.WriteLine($"{words.Length} words in text:");
foreach (var word in words)
{
System.Console.WriteLine($"<{word}>");
}
String.Split 可以採用字串陣列 (作為分隔符號以剖析目標字串的字元序列,而不是單一字元)。
string[] separatingStrings = { "<<", "..." };
string text = "one<<two......three<four";
System.Console.WriteLine($"Original text: '{text}'");
string[] words = text.Split(separatingStrings, System.StringSplitOptions.RemoveEmptyEntries);
System.Console.WriteLine($"{words.Length} substrings in text:");
foreach (var word in words)
{
System.Console.WriteLine(word);
}
使用 GitHub Copilot 分割字串
您可以在 IDE 中使用 GitHub Copilot 來產生程式代碼,以使用 String.Split
C# 來分割字串。 您可以根據需求自訂提示,以使用字串和分隔符。
下列文字顯示 Copilot Chat 的範例提示:
Generate C# code to use Split.String to split a string into substrings.
Input string is "You win some. You lose some." Delimiters are space and period.
Provide example output.
GitHub Copilot 是由 AI 驅動的,因此可能會有意外和錯誤的情況發生。 如需詳細資訊,請參閱 Copilot 常見問題。
深入瞭解在 Visual Studio 中的 GitHub Copilot 和在 VS Code 中的 GitHub Copilot。