导读:本期聚焦于小伙伴创作的《C#如何使用Split分割字符串?有哪些常见的分割场景和注意事项》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#如何使用Split分割字符串?有哪些常见的分割场景和注意事项》有用,将其分享出去将是对创作者最好的鼓励。

在C#程序开发中,字符串分割是最基础也最常用的字符串操作之一,Split方法作为System.String类提供的核心分割工具,能够快速按照指定分隔符将字符串拆分为字符串数组,适配多种业务场景的处理需求。

C#如何使用Split分割字符串?有哪些常见的分割场景和注意事项

Split方法的基础用法

Split最基础的用法是传入单个字符作为分隔符,方法会按照该字符将字符串拆分,返回拆分后的字符串数组。下面的示例演示了按照逗号分割字符串的基础实现:

using System;

class Program
{
    static void Main()
    {
        string originStr = "苹果,香蕉,橙子,葡萄";
        // 按照逗号分割字符串
        char[] separator = new char[] { ',' };
        string[] resultArr = originStr.Split(separator);
        
        Console.WriteLine("分割结果:");
        foreach (string item in resultArr)
        {
            Console.WriteLine(item);
        }
    }
}

上述代码中,我们定义了包含多个水果名称的原始字符串,使用逗号作为分隔符调用Split方法,最终得到的数组包含四个元素,分别是苹果、香蕉、橙子、葡萄。

使用多个分隔符分割字符串

如果字符串中存在多种不同的分隔符,也可以将多个分隔符组成字符数组传入Split方法,方法会将匹配到任意一个分隔符的位置都作为拆分点。示例如下:

using System;

class Program
{
    static void Main()
    {
        string logStr = "2024-05-01|错误|用户ID:1001,操作失败";
        // 同时按照竖线和逗号分割
        char[] separators = new char[] { '|', ',' };
        string[] logParts = logStr.Split(separators);
        
        Console.WriteLine("日志拆分结果:");
        foreach (string part in logParts)
        {
            Console.WriteLine(part);
        }
    }
}

运行后得到的数组会包含五个元素,分别是日期、错误、用户ID:1001、操作失败,所有竖线和逗号的位置都被作为拆分点处理了。

去除分割后的空字符串

当原始字符串中存在连续的分隔符,或者字符串开头、结尾有分隔符时,Split方法默认会生成空字符串元素。如果不想保留这些空字符串,可以使用带有StringSplitOptions参数的重载版本,传入StringSplitOptions.RemoveEmptyEntries即可过滤空结果。

using System;

class Program
{
    static void Main()
    {
        string testStr = ",张三,,李四,,王五,";
        // 不过滤空字符串的分割结果
        string[] arrWithEmpty = testStr.Split(',');
        Console.WriteLine("不过滤空字符串的结果数量:" + arrWithEmpty.Length);
        
        // 过滤空字符串的分割结果
        string[] arrWithoutEmpty = testStr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
        Console.WriteLine("过滤空字符串的结果数量:" + arrWithoutEmpty.Length);
        Console.WriteLine("过滤后的元素:");
        foreach (string name in arrWithoutEmpty)
        {
            Console.WriteLine(name);
        }
    }
}

第一个分割结果会包含7个元素,其中多个是空字符串,第二个分割结果只会保留3个有效姓名元素,空字符串全部被过滤掉了。

按照字符串作为分隔符分割

除了按照单个字符分割,Split还支持按照字符串作为分隔符,需要传入字符串数组作为分隔符参数,同时可以指定匹配分隔符时是否忽略大小写。示例如下:

using System;

class Program
{
    static void Main()
    {
        string content = "第一章###第二章###第三章###第四章";
        // 按照###字符串分割
        string[] chapterArr = content.Split(new string[] { "###" }, StringSplitOptions.None);
        
        Console.WriteLine("章节列表:");
        foreach (string chapter in chapterArr)
        {
            Console.WriteLine(chapter);
        }
    }
}

该示例会将原始字符串按照###拆分为四个章节名称,输出结果和预期一致。

常见注意事项

  • Split方法是字符串实例方法,调用时需要注意原始字符串不能为null,否则会抛出NullReferenceException异常,使用前建议先做非空判断。
  • 分隔符数组如果传入空数组或者null,Split会按照空白字符(空格、换行、制表符等)进行分割,这个特性在需要处理不规则空白分隔的场景下很实用。
  • 分割后的返回的字符串数组是新的数组,修改数组内的元素不会影响原始字符串的值。
  • 如果需要频繁进行大量字符串分割操作,建议提前定义好分隔符数组复用,减少重复创建对象的开销。

C#Split字符串分割分隔符修改时间:2026-06-19 02:30:29

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。