C#中字符串分割最常用的是String.Split方法,它按指定分隔符将字符串切分为string[]数组;支持单字符、多字符及字符串分隔符,需注意空项处理、空字符串返回值、大小写敏感性及性能优化等关键细节。
C# 中字符串分割最常用、最直接的方式就是 String.Split 方法。它能把一个字符串按指定的分隔符(字符或字符串)切分成多个子串,返回 string[] 数组。用法简单,但细节不少,掌握关键点才能避免踩坑。
最常见的是用一个字符作为分隔符,比如逗号、空格、制表符等:
string text = "apple,banana,orange";
string[] fruits = text.Split(',');结果是 {"apple", "banana", "orange"}。注意:Split 默认会保留空项(比如 "a,,b".Split(',') → {"a", "", "b"}),如果想跳过空字符串,得加参数:
text.Split(',', StringSplitOptions.RemoveEmptyEntries) —— 忽略空项text.Split(',', StringSplitOptions.None) —— 默认行为,保留空项(可省略)支持传入字符数组(多个分隔符)或字符串数组(支持多字符分隔符):
"a,b;c:d".Split(',', ';', ':') → {"a", "b", "c", "d"}
"one||two||three".Split(new string[] { "||" }, StringSplitOptions.None)
⚠️ 注意:用字符串分割时,第二个参数必须是 StringSplitOptions 枚举值,不能省略;而用字符分割时可以省略。
几个容易出错的地方要特别留意:
"".Split(',') → {""},不是 null 或空数组ToLower() 或正则替代Span.Split (.NET Core 2.1+)提升效率Split 适合规则分隔场景,但遇到复杂需求建议换方式:
Substring 或 Span.Chunk
Regex.Split
Take/Skip 或手动遍历,避免全量分割浪费内存基本上就这些。Split 看似简单,但参数组合和边界情况理清楚,写出来的代码才健壮可靠。