Program that identifies words in a sentence, stores these in a list and replaces each word with the position of that word in the list

Deadly 提交于 2020-01-17 03:51:05

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!