C#中实现字符串分割的5种实用方法详解

Theo
Theo
发布时间:2026-10-14 | 3人浏览过
原创

在C#开发中,字符串分割是常见的基础操作。面对单一字符、多字符组合或复杂模式的分隔需求,开发者可以选择不同的实现方案。本文将梳理五种常用的字符串分割方法,包括基础的`Split`数组调用、正则表达式`Regex.Split`的应用,以及结合`Replace`预处理和特殊正则模式的进阶技巧,帮助解决从简单切分到清理连续分隔符的各种场景。

第一种方法:基于单字符分割

这是最基础的字符串分割方式,使用`Split`方法并传入单个字符作为分隔符。适用于简单的文本解析场景。

操作示例:

string s = "abcdeabcdeabcde";
string[] sArray = s.Split('c');
foreach (string i in sArray)
    Console.WriteLine(i.ToString());

执行后将得到以下结果:

  • ab
  • deab
  • deab
  • de

第二种方法:基于多字符数组分割

当需要以多个指定字符中的任意一个作为切割点时,可以向`Split`方法传递一个字符数组。该方法会在数组内的任意字符处进行分割。

操作示例:

string s = "abcdeabcdeabcde";
// 定义分割字符数组
string[] sArray1 = s.Split(new char[3] { 'c', 'd', 'e' });
foreach (string i in sArray1)
    Console.WriteLine(i.ToString());

由于'a'和'b'未被包含在分隔符中,且中间没有连续的其他分隔符干扰逻辑(注意原示例逻辑),输出结果展示的是被'd','e','c'隔断后的部分:

  • ab
  • ab
  • ab

第三种方法:使用正则表达式分割

对于更复杂的匹配规则,可以使用`System.Text.RegularExpressions`命名空间下的`Regex.Split`方法。这种方法支持忽略大小写等高级选项。

准备工作:

  1. 确保项目引用了`System.Text.RegularExpressions`命名空间。

操作示例:

using System.Text.RegularExpressions;

string content = "agcsmallmacsmallgggsmallytx";
// 按'small'关键字分割,忽略大小写
string[] resultString = Regex.Split(content, "small", RegexOptions.IgnoreCase);
foreach (string i in resultString)
    Console.WriteLine(i.ToString());

输出结果:

  • agc
  • mac
  • ggg
  • ytx

第四种方法:结合Replace预处理后分割

如果原始字符串中的分隔符格式不统一(例如由多个星号组成),可以先使用`Replace`方法将其统一为单个标准分隔符,然后再执行分割。

操作示例:

string str1 = "我*****是*****一*****个*****教*****师";
string[] str2;
// 先将连续的 '*' 替换为标准单字符 '*'
str1 = str1.Replace("*****", "*");
str2 = str1.Split('*');
foreach (string i in str2)
    Console.WriteLine(i.ToString());

第五种方法:使用正则处理非均匀分隔符

当分隔符长度不一(如既有两个星号也有五个星号)时,第四种的固定替换方法会产生多余的空格或空元素。此时应直接使用正则表达式来匹配“一个或多个连续的分隔符”。

操作示例:

string str1 = "我**是*****一*****个*****教*****师";
// 使用正则表达式匹配一个或多个 * 符号作为整体分割
string[] str2 = System.Text.RegularExpressions.Regex.Split(str1, @"[*]+"); 
foreach (string i in str2)
    Console.WriteLine(i.ToString());

此方法通过`[*]+`模式,巧妙地将不同长度的连续分隔符视为同一间隔,直接输出期望的纯净结果:“我是一个教师”的各个部分,避免了中间出现空格或空白项的问题。

以上就是C#中使用split分割字符串的几种方法的详细内容,更多关于C#字符串处理技巧的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表