C# 使用字符串分割字符串

实现了一个使用字符串来切割字符串的扩展方法,同时发现可以使用正则表达式来切割字符串

手动实现的这个由于使用的是迭代枚举数的方式返回的数据,某些场景下比用正则切割性能更好一些

复制代码
        public static IEnumerable<string> SplitByString(this string text, string separator) {
            int i = 0;
            while (true) {
                var idx = text.IndexOf(separator, i);
                if (idx == -1) {
                    if (i == 0) {
                        yield return text;
                    } else {
                        yield return text.Substring(i);
                    }
                    break;
                } else {
                    yield return text.Substring(i, idx - i);
                    i = idx + separator.Length;
                }
            }
        }
复制代码

使用方式

复制代码
                string str = "abc\r\n测试啊\r\n123\r\n";
                //使用自定义的切割扩展方法
                foreach (var p in SplitByString(str, "\r\n")) {
                    Console.WriteLine(p);
                }
                //使用正则表达式类的切割方法
                foreach (var p in Regex.Split(str, "\r\n")) {
                    Console.WriteLine(p);
                }
复制代码

 

posted @   WmW  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2014-12-12 C# 学习笔记
点击右上角即可分享
微信分享提示