三大分割場景速查
| 需求 | 方法 | 關鍵點 |
| 單一字元分隔 | str.Split('c') | 最輕量、效能最好 |
| 多個單字元分隔 | str.Split(new[]{'a','b'}) | 傳入 char[],任一字元皆為分隔符 |
| 字串/正則分隔 | Regex.Split(str, pattern) | 支援多字元、忽略大小寫、複雜模式 |
實戰範例
1. 字串分隔(Regex.Split)
using System.Text.RegularExpressions;
string str = "aaajsbbbjsccc";
string[] arr = Regex.Split(str, "js", RegexOptions.IgnoreCase);
// 輸出: aaa, bbb, ccc
2. 多字元分隔(Split + char[])
string str = "aaajbbbscccjdddseee";
string[] arr = str.Split(new char[] { 'j', 's' });
// 輸出: aaa, bbb, ccc, ddd, eee
3. 單字元分隔
string str = "aaajbbbjccc";
string[] arr = str.Split('j');
// 輸出: aaa, bbb, ccc
進階技巧
- 移除空白項:
str.Split(new[]{','}, StringSplitOptions.RemoveEmptyEntries)
- 限制分割段數:
str.Split(new[]{'|'}, 3) 只分割前 2 個分隔符,剩餘保留在最後一項。
- 反向操作:
string.Join("-", new[]{"a","b","c"}) → "a-b-c"。
效能建議
- 單字元分隔優先用
Split(char),避免 Regex 開銷。
- 固定分隔符字串且不需正則功能時,可用
str.Split(new[]{ "js" }, StringSplitOptions.None)(.NET Core / .NET 5+ 支援 string[] 多載)。
- 大量資料處理時,考慮
Span<char> + 手寫解析避免配置陣列。