我需要在 .NET 中将字符串拆分为换行符,我知道拆分字符串的唯一方法是使用 Split 方法。但是,这不允许我(轻松)在换行符上拆分,那么最好的方法是什么?
网友回答:
使用?StringReader
using (System.IO.StringReader reader = new System.IO.StringReader(input)) {
string line = reader.ReadLine();
}
网友回答:
要拆分字符串,您需要使用接受字符串数组的重载:
string[] lines = theText.Split(
new string[] { Environment.NewLine },
StringSplitOptions.None
);
编辑:
如果要处理文本中不同类型的换行符,可以使用匹配多个字符串的功能。这将正确拆分任一类型的换行符,并保留文本中的空行和间距:
string[] lines = theText.Split(
new string[] { "rn", "r", "n" },
StringSplitOptions.None
);
网友回答:
尽量避免使用字符串。拆分作为常规解决方案,因为您将在使用该函数的任何地方使用更多内存 – 原始字符串和拆分副本,都在内存中。相信我,当你开始扩展时,这可能是一个地狱般的问题——运行一个处理 32MB 文档的 100 位批处理应用程序,你会在八个并发线程上胡说八道。不是说我以前去过那里…
相反,请使用这样的迭代器;
public static IEnumerable<string> SplitToLines(this string input)
{
if (input == null)
{
yield break;
}
using (System.IO.StringReader reader = new System.IO.StringReader(input))
{
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
这将允许您围绕数据进行更高效的内存循环;
foreach(var line in document.SplitToLines())
{
// one line at a time...
}
当然,如果你想把它全部放在内存中,你可以这样做;
var allTheLines = document.SplitToLines().ToArray();
模板简介:该模板名称为【在 .NET 中拆分换行符上的字符串的最简单方法?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。