2013-06-08 1 views
0

Я попытаюсь записать это в псевдокоде, но я изо всех сил пытаюсь написать код vb.net, поскольку я довольно новичок в язык.Найти и скопировать все вхождения подстроки из точки a в точку b в список

Я хотел бы найти точку a в строке и скопировать все символы до конца точки b.

Однако исходная строка содержит несколько вхождений «предложения», которые я хочу, и как таковой я хотел бы получить все вхождения в списке.

Dim original ="hello mike bye some words hello kate your nice bye" etc. 

Dim list As New List(Of String) 
Dim pointA As String ="hello" 
Dim pointB As String = "bye" 

*Psuedo Code* 
While not end of string 
dim copy As String 
--Find first a 
--Find first b 
--copy all sentence 
--list.Add(copy) 
--Find next occurrence 

essentially the List would now contain: 
list(0) = "hello mike bye" 
list(1) = "hello kate your nice bye" 

Благодарим вас за внимание и время.

ответ

1

Работа с строковыми методами IndexOf и Substring

Dim original ="hello mike bye some words hello kate your nice bye and other strings" 
Dim startWord = "hello" 
Dim stopWord = "bye" 
Dim words = new List(Of String)() 

Dim pos1 = original.IndexOf(startWord, StringComparison.CurrentCultureIgnoreCase) 
Dim pos2 = original.IndexOf(stopWord, StringComparison.CurrentCultureIgnoreCase) 
while pos1 <> -1 AndAlso pos2 <> -1 
    words.Add(original.Substring(pos1, pos2 + stopWord.Length - pos1)) 
    pos1 = original.IndexOf(startWord, pos1 + 1, StringComparison.CurrentCultureIgnoreCase) 
    pos2 = original.IndexOf(stopWord, pos2 + 1, StringComparison.CurrentCultureIgnoreCase) 
End While 

for each s in words 
    Console.WriteLine("[" + s + "]") 
next 
+0

благодарственного это прекрасно работает в тестовом случае, однако я только заметил, что исходная строка не содержит пробелов. так например .... Dim original = "hellomikebyesomewordshellokateyournicebyeandother strings" все еще можно найти подстроку в этом? – mbarnett

+0

Вы попробовали? Нет проблем с пробелами или без них – Steve

+0

ah извините, да, действительно, это еще раз спасибо – mbarnett

Смежные вопросы