C# dotnet 分割换行
2021/6/29 20:25:30
本文主要是介绍C# dotnet 分割换行,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
我在写一个 UWP 文本阅读器,我需要提升性能,需要将文本按行绘制但是文本里面的换行分割规则有点坑,本文写了一个辅助的方法用于分割换行
虽然有默认字符串提供的 Split 分割方法很好用,在一些字符串里面只包含 \r 或 \n 很好用,但是如果在字符串里面同时包含了 \r 和 \n 就不好玩了,如下面字符串
var str = "123123\r123123\n123123\r\n123";
我需要按照只要有 \r 或 \n 就分割字符串,如果有连续的 \r\n 就分割一次
var newLineList = str.Split('\n', '\r').Select(text => text = text.Replace("\r", "")) .ToList();
上面代码将会多分割出一个空行,原因是 \r\n 被分割为两行
我自己写了一个辅助代码
private static List<string> SplitMultiLines(string str) { var lineList = new List<string>(); var text = new StringBuilder(str.Length); for (var i = 0; i < str.Length; i++) { var c = str[i]; if (c == '\r') { lineList.Add(text.ToString()); text.Clear(); if (i < str.Length - 1) { if (str[i + 1] == '\n') { i++; } } } else if (c == '\n') { lineList.Add(text.ToString()); text.Clear(); if (i < str.Length - 1) { if (str[i + 1] == '\r') { i++; } } } else { text.Append(c); } } lineList.Add(text.ToString()); return lineList; }
上面代码能符合我预期,如果小伙伴有更简单的方法,欢迎告诉我
本文代码放在 github 欢迎小伙伴访问
我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。
如果在博客看到有任何不懂的,欢迎交流
这篇关于C# dotnet 分割换行的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统