VBScript创建列表,拆分列表项目并修剪它们



我正在尝试创建将变量添加到列表的代码。然后,它将将所有列表元素分为:,仅返回第二部分。最后,所有返回的字符串都将被修剪。

让您更好地理解让我向您展示一个例子:

  1. 在列表中添加" A:B"one_answers" C:D"。
  2. 拆分元素,因此仅返回" B"one_answers" D"。
  3. 修剪" 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))

最新更新