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 @ 2024-12-12 17:31  WmW  阅读(41)  评论(0)    收藏  举报