识别句子中单词的程序,将这些单词存储在列表中,并将每个单词替换为该单词在列表中的位置
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
我创建了一个 Visual Basic 程序,可以输出一个单词在句子中的位置,有没有一种方法可以只用数字输出整个句子,例如:The cat fighted another cat would be 1, 2、3、4、1、6、7。
非常感谢您的帮助。
您需要做的就是获取句子中不同单词的列表,然后遍历句子中的每个单词并将单词的索引替换为单词作为输出。以下是如何实现该目标的示例:
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"
我创建了一个 Visual Basic 程序,可以输出一个单词在句子中的位置,有没有一种方法可以只用数字输出整个句子,例如:The cat fighted another cat would be 1, 2、3、4、1、6、7。
非常感谢您的帮助。
您需要做的就是获取句子中不同单词的列表,然后遍历句子中的每个单词并将单词的索引替换为单词作为输出。以下是如何实现该目标的示例:
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"