Program that identifies words in a sentence, store

2019-09-04 22:36发布

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条回答
何必那么认真
2楼-- · 2019-09-04 23:23

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"
查看更多
登录 后发表回答