Hvordan finne ord i en streng i Visual Basic

Den enkleste måten å finne et ord i en Visual Basic streng er å bruke String klassen er "IndexOf" funksjon, men det er ikke den eneste måten, og kan ikke levere det du ønsker. Mens "IndexOf" -funksjonen gir bokstaven stilling av ordet, kan mange programmerere ønske, i stedet, for å finne det ord nummer er representerer i strengen.

Bruksanvisning

1 Opprett en ny Visual Basic-prosjektet ved å klikke på "File" og "Nytt prosjekt". Velg "Console Application".

2 Lim inn følgende for å lage en enkel streng som du kan søke innen:

Dim s As String = "Dette er en streng av ord."

3 Lim inn følgende å hente tegnet nummeret der ordet "streng" skjer:

s.IndexOf ( "streng")

Resultatet av dette vil være 10, siden (som starter på 0), den første bokstaven i ordet "streng" forekommer i den tiende plass.

4 Lim inn følgende for å finne ordet antall ordet "streng:"

dim ord () som s.split ()

dim newWords som Arraylist = new Arraylist ()

for hvert ord i ord

dim regex = new System.Text.RegularExpressions.Regex("\W")

newWords.Add (regex.Replace (ord, ""))

neste

newWords.IndexOf ( "streng")

Dette deler strengen i sine ord og bruker deretter et vanlig uttrykk å strippe all tegnsetting, mellomrom, og andre potensielle problem tegn fra hvert ord. Det gjør den ved hjelp av Visual Basics "\ W" regex mønster som matcher alle ikke-alfabetiske tegn, og erstatte dem med tomme strenger.

Resultatet av dette vil være tre, ettersom (som starter ved 0) "streng" er i den tredje plass. For en mer intuitiv utgang, bare legge en til resultatet, som så:

newWords.IndexOf ( "streng") + 1

Dette vil sikre at opptellingen begynner på en heller enn 0, som Visual Basic vanligvis gjør.