C#怎么进行字符串分割 C# String.Split方法使用详解

来源:这里教程网 时间:2026-02-21 17:38:41 作者:

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"}
按字符串分割(需传 string[]):
"one||two||three".Split(new string[] { "||" }, StringSplitOptions.None)

⚠️ 注意:用字符串分割时,第二个参数必须是

StringSplitOptions
枚举值,不能省略;而用字符分割时可以省略。

常见陷阱与注意事项

几个容易出错的地方要特别留意:

空字符串调用 Split 会返回包含一个空字符串的数组:
"".Split(',') → {""}
,不是 null 或空数组
分隔符连续出现时,是否产生空项取决于 StringSplitOptions 设置 区分大小写:Split 本身不处理大小写,如需忽略大小写分割,得先用
ToLower()
或正则替代
性能考虑:对超长字符串频繁分割,可考虑用
Span<char>.Split</char>
(.NET Core 2.1+)提升效率

替代方案:什么时候不该用 Split?

Split 适合规则分隔场景,但遇到复杂需求建议换方式:

需要按固定长度切分 → 用
Substring
Span.Chunk
分隔逻辑含条件(如“逗号但不在引号内”)→ 用正则表达式
Regex.Split
只取前 N 段或后几段 → 可结合
Take
/
Skip
或手动遍历,避免全量分割浪费内存

基本上就这些。Split 看似简单,但参数组合和边界情况理清楚,写出来的代码才健壮可靠。

相关推荐