我正在尝试创建将变量添加到列表的代码。然后,它将将所有列表元素分为:
,仅返回第二部分。最后,所有返回的字符串都将被修剪。
让您更好地理解让我向您展示一个例子:
- 在列表中添加" A:B"one_answers" C:D"。
- 拆分元素,因此仅返回" B"one_answers" D"。
- 修剪" B"one_answers" D"。
到目前为止,我想出了这样的事情,但它不起作用,我不知道为什么。
Set list = CreateObject("System.Collections.ArrayList")
list.Add "bob : kid"
list.Add "ryan : alex"
list.Add "kate : andy"
list.Add "alice : mandy"
For Each item In list
Dim item As String
Dim words As String() = item.Split(New Char() {":"c})
For Each word In words
WScript.Echo word
Next
Next
您的代码不起作用,因为它不是有效的vbscript。您有几个问题:
- vbscript不支持键入的变量声明(
Dim var As Type
(。如果要明确定义变量,请使用Dim var
。但是,请注意,在VBScript中,仅在脚本开头将Option Explicit
放置时才需要定义变量。 - vbscript不支持变量的合并声明和定义(
Dim var = value
(。您需要两个单独的语句来定义变量并为其分配一个值。这两个语句可以通过用结肠分开(Dim var : var = value
(将它们放入一行,但它们仍然两个单独的语句。 - 在VBScript字符串中是一种原始数据类型。VBScript字符串不是具有属性的对象。为了拆分字符串,请使用
Split()
函数。 - 不要在循环内重新定义循环变量。
将您的循环更改为这样的事情,它应该做您想做的事:
For Each item In list
Dim words : words = Split(item, ":")
For Each word In words
WScript.Echo Trim(word)
Next
Next
如果您只想从每个拆分项目中的第二个元素,则要做类似的事情:
Dim words : words = Split(item, ":")
WScript.Echo Trim(words(1))
或喜欢:
WScript.Echo Trim(Split(item, ":")(1))