匹配字符串中的单词。如果一个单词在句子中重复,他们会给出一条消息"匹配",否则给出一条消息" No match"

时间:2017-02-02 14:11:10

标签: vbscript qtp

我想制作一个以句子作为输入然后将其中的不同单词分开的程序。现在它比较单词,如果一个单词重复,则给出一个消息匹配,否则它不给出匹配。但是在执行相同的时候会显示<div id="faketxt" contentEditable=true data-text="Write Here" onkeypress="return (this.innerText.length <= 19200)"></div>

这是我写的脚本:

MsgBox

2 个答案:

答案 0 :(得分:2)

For循环永远不会运行,因为UBound(words)将返回0

这是因为Split()函数返回Array所以不需要额外的Array()调用,这最终会给你一个包含另一个数组的元素数组。

解决方案是改变

words = Array(Split(sent))

words = Split(sent)

这将解决您的初始问题,但在正常运行之前,您需要解决的代码存在其他问题。

答案 1 :(得分:0)

VBScript用于对类型/识别标记进行分类/计数的工具是Dictionary

演示:

Option Explicit

Dim a : a = Split("Its a good day but every day is a good day")
Dim d : Set d = CreateObject("Scripting.Dictionary")
Dim w
For Each w In a
    d(w) = d(w) + 1
    If 1 < d(w) Then
       WScript.Echo "more than one " & w & " - could 'Exit For'"
    End If
Next
For Each w In d.Keys()
    WScript.Echo w, d(w)
Next

(看看ma,没有嵌套循环!)

输出:

cscript 42004404.vbs
more than one day - could 'Exit For'
more than one a - could 'Exit For'
more than one good - could 'Exit For'
more than one day - could 'Exit For'
Its 1
a 2
good 2
day 3
but 1
every 1
is 1