Положение символа слева от текущей позиции в строке - PullRequest
1 голос
/ 07 января 2010

Из некоторой произвольной позиции в строке мне нужно найти ближайшую позицию символа слева от моей позиции. Если бы я хотел выполнить эту операцию справа, я мог бы просто использовать .IndexOf, но как сделать это слева, я не уверен.

Два способа, которыми я придумал, были просто убывающий цикл, начинающийся с моей позиции, или, переставляя строку в обратном направлении и используя обычный .IndexOf

У кого-нибудь еще есть лучшие способы добиться этого?

Ответы [ 2 ]

7 голосов
/ 07 января 2010

А как же:

yourstring.LastIndexOf("foo", 0, currentPosition)                                  
0 голосов
/ 03 марта 2018

Более конкретно, найдите слово , встречающееся до nWord в txt : Ваше слово будет в позиции 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...