C# 计算换行和回车的所有出现次数
在 C# 中,我正在制作一个带有行号的简单文本编辑器。 我想计算字符串中有效换行符的数量。
我想数
\r \n \r\n
我该怎么做?
或者更好的是,有人可以向我指出一篇关于如何对 rtf 框进行行号的文章吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在 C# 中,我正在制作一个带有行号的简单文本编辑器。 我想计算字符串中有效换行符的数量。
我想数
\r \n \r\n
我该怎么做?
或者更好的是,有人可以向我指出一篇关于如何对 rtf 框进行行号的文章吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
注意:这个答案更多地与计算字符串中的行数的抽象任务有关,而不是与 GUI 方面的事情有关。 对于原始提问者来说,它可能不如其他一些答案那么有用,但我怀疑它在不涉及 GUI 的类似情况下很有用。 如果有足够多的人认为它与此处无关,我将删除它。
我将使用已经知道行结尾的现有类型,即
TextReader
,与来自 MiscUtil:或者,没有依赖项:
然后:
请注意,这将计算实际的文本行而不是换行符 - 这可能与您想要的略有不同(例如,通常是换行符 + 1,但如果文本末尾有换行符则不是)。
Note: This answer is more to do with the abstract task of counting lines in a string, rather than to do with the GUI side of things. It's probably not as useful as some other answers for the original questioner, but I suspect it's useful in similar situations which don't involve GUIs. If enough people reckon it's not relevant here, I'll delete it.
I would use an existing type which already knows about line endings, namely
TextReader
, in conjunction with myLineReader
type from MiscUtil:Alternatively, without the dependencies:
then:
Note that this will count actual lines of text rather than line breaks - this may subtly different from what you want (e.g. it'll normally be line breaks + 1, but not if there's a line break at the end of the text).
计算字符串出现的次数:
Counting occurrences of a string:
CodeProject 上有相关文章:
.NET 2.0 中 RichTextBox 的行编号
.NET 2.0 中 RichTextBox 的行号
RichTextBox 的行号
There are articles on CodeProject for this:
Line Numbering of RichTextBox in .NET 2.0
Numbering lines of RichTextBox in .NET 2.0
LineNumbers for the RichTextBox
计数行 - http://ryanfarley.com/blog/archive/2004 /04/07/511.aspx
带行号的 RTB - http://www.xtremedotnettalk.com/showthread.php?s=&threadid=49661&highlight=RichTextBox
Counting Lines - http://ryanfarley.com/blog/archive/2004/04/07/511.aspx
RTB With Line Numbers - http://www.xtremedotnettalk.com/showthread.php?s=&threadid=49661&highlight=RichTextBox
第一次重载中模式的顺序很重要,因为如果您首先执行“\r”或“\n”,那么您最终会在数组中获得几乎或恰好两倍的项目,因为它在指定它们的顺序。
The order of the patterns in the first overload is important, because if you do "\r" or "\n" first, you'll wind up with almost or exactly twice as many items in the array, since it performs them in the order they're specified.