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