我有一个未知长度的字符串
它的格式
\nline
\nline
\nline
不知道它有多长我怎么能只取字符串的最后 10 行 由“\n”分隔的行
最佳答案
随着字符串变大,避免处理无关紧要的字符变得更加重要。使用 string.Split
的任何方法效率低下,因为必须处理整个字符串。一个有效的解决方案必须从后面穿过字符串。这是一种正则表达式方法。
请注意,它返回一个 List<string>
,因为结果在返回之前需要反转(因此使用了 Insert
方法)
private static List<string> TakeLastLines(string text, int count)
{
List<string> lines = new List<string>();
Match match = Regex.Match(text, "^.*$", RegexOptions.Multiline | RegexOptions.RightToLeft);
while (match.Success && lines.Count < count)
{
lines.Insert(0, match.Value);
match = match.NextMatch();
}
return lines;
}
关于c# - 取字符串的最后n行c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942885/