问题
I have created a form visual basic program that ouputs the position of a word in a sentence, is there a way that i could output the whole sentence with only numbers for example: The cat fought another cat would be 1,2,3,4,1,6,7.
Really appreciate all of your help.
回答1:
All you need to do is get a list of the distinct words in the sentence, then iterate through each word of the sentence and substitute the word's index for the word as an output. Here's an example of how to accomplish that:
Dim UserInput1 As String = "The cat fought another cat would be"
Dim words As New List(Of String)
'Here, we just add get a list of the distinct words in the sentence
For Each Word As String In UserInput1.ToLower.Split(CChar(" "))
If Not words.Contains(Word) Then words.Add(Word)
Next
'Looping through the words and their indexes
'to show their relation just for this example
For i As Integer = 0 To Words.Count - 1
Debug.Print((i + 1).ToString & " = " & Words(i))
Next
'Outputs:
'1 = the
'2 = cat
'3 = fought
'4 = another
'5 = would
'6 = be
'So now that we have our number/word relations,
'we can just loop through the words and get the
'output that you wanted, an index substitution of each word
Dim output As String = Nothing
For Each Word As String In UserInput1.ToLower.Split(CChar(" "))
output &= (words.IndexOf(Word) + 1).ToString & ", "
Next
output = output.Substring(0, output.Length - 2)
'output = "1, 2, 3, 4, 2, 5, 6"
来源:https://stackoverflow.com/questions/40000471/program-that-identifies-words-in-a-sentence-stores-these-in-a-list-and-replaces