2016-10-05 7 views
0

Ich muss die Position eines ändern angegebenen Wortes in einer Zeichenfolge finden, und ich brauche es sehr spezifisch, so dass es keine Wörter ohne Leerzeichen enthält so sagen, wenn ich war nach dem Wort "Hi" suchen Es würde nur wahr zurückgeben, wenn es "Hi" und nicht "HiExample" überprüft.Die Position einer angegebenen Zeichenfolge in einer anderen Zeichenfolge suchen

Code:

Dim userString As String = userInput.Text 
    userString = userString.ToLower() 

    Dim d As New Dictionary(Of String, Integer) 
    Dim wordString = userString.ToLower().Split(" "c) 
    Dim iList As New List(Of String)() 

    For Each word In wordString 
     If d.ContainsKey(word) Then 
      d(word) += 1 
      iList.Add(word) 
     Else 
      d.Add(word, 1) 
     End If 
    Next 

    For Each de In d 
     For i As Integer = 0 To wordString.Count - 1 
      Dim index As Integer = userString.IndexOf(de.Key) 
      output.Text &= "Word: " & de.Key & " Occurrence: " & de.Value & " Position: " & GET POSTION OF EACH WORD HERE & Environment.NewLine 
     Next 
    Next 

für Großbuchstaben prüfen oder Kleinschreibung wird nicht nötig sein, da ich bereits den String in Kleinbuchstaben umgewandelt.

Danke,

Matt

+0

wissen Sie über reguläre Ausdrücke erhalten begonnen? Könnte hier nützlich sein – ADyson

Antwort

0

können Sie Regex versuchen

For Each de In d 
    Dim index As Integer = Regex.Matches(userString, "(?<=^|\b|\s)" & Regex.Escape(de.Key) & "(?=\s|\b|$)")(0).Index 
    Console.WriteLine("Word: " & de.Key & " Occurrence: " & de.Value & " Position: " & index) 
Next 

dies könnte Sie

Verwandte Themen