vb.net - 在 RichTextBox 中搜索特定字符的第一次出现返回 -1
问题描述
我只是想找到当前行的第一个空格的位置索引。
我编写的代码仅适用于整个richtextbox 中的第一个空格,但是如果我尝试获取以下空格的位置索引(同一行或以下行),我总是得到-1,我不知道为什么。
我一直在阅读以下文档: MSDN 文档链接
我使用了Find(Char[], Int32)选项,方式如下:
RTB1.Find(CChar(" "), RTB1.GetFirstCharIndexOfCurrentLine)
问题是当我尝试在第一个之后检测以下一个空格时,我得到 -1。如果我使用该代码检测第一行的第一个空格,我会得到 6 作为结果(这是正确的)。但是对于以下空格,我总是得到-1,即使它是第一行或以下几行。
解决方案
此代码将一次性为您提供所有空格字符的索引:
Dim index = RichTextBox1.Find({" "c})
Do Until index = -1
MessageBox.Show(index.ToString())
index = RichTextBox1.Find({" "c}, index + 1)
Loop
如果您想一次获得一个,那么您想要的是这样的:
Private index As Integer = -1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
index = RichTextBox1.Find({" "c}, index + 1)
If index = -1 Then
MessageBox.Show("No more spaces")
Else
MessageBox.Show(index.ToString())
End If
End Sub
推荐阅读
- r - 如何对函数进行灵敏度测试?
- java - 一个基本的 android 应用程序以什么顺序执行它的文件?
- ansible - 在分布式环境中使用 ansible 进行 WSO2 分析
- typescript - Firebase 函数错误 - 对象可能是“未定义”
- php - PHP SplPriorityQueue 中的 Rewind 方法不会将迭代器移动到队列的开头
- oozie - 在未来日期运行 Oozie Action
- c++ - 用C画好圆
- amazon-web-services - 从 Telegram 电子书调用时,哪种 AWS 服务更适合托管 GO 程序?
- reactjs - 我如何使用减速器返回的值
- django-rest-framework - 休息框架Tokenauthentication绕过?