字符在字符串中当前位置左侧的位置

时间:2010-01-07 15:02:37

标签: c# string indexing

从字符串中的某个任意位置,我需要找到一个字符在我位置左侧的最近位置。如果我想要向右执行此操作,我可以使用.IndexOf,但如何向左执行此操作我不确定。

我提出的两种方式只是从我的位置开始的递减循环,或者将字符串反向并使用正常的.IndexOf

其他人有没有更好的方法来实现这个目标?

2 个答案:

答案 0 :(得分:7)

怎么样:

yourstring.LastIndexOf("foo", 0, currentPosition)                                  

答案 1 :(得分:0)

更明确地,在 txt 中的 nWord 之前找到 word :您的单词将位于 s 的位置:

Dim s As Integer = txt.Substring(0, txt.IndexOf(nWord)).LastIndexOf(word)

在我需要查找所有事件的循环中,这对我很有用。

这是构建循环的方法:

Dim n As Integer = 0
Dim s As Integer = 0
Do While txt.Contains(word) AndAlso txt.Contains(nWord)
     n = txt.IndexOf(nWord)
     'n = txt.IndexOf(nWord)+nWord.Length ':If nWord may also contain word
     s += txt.Substring(0, n).LastIndexOf(word)
     txt = txt.SubString(n + nWord.Length)
     MsgBox("Found at " & s.ToString())
Loop