VBScript 创建列表、拆分列表项和 trim 它们

VBScript create list, split list items and trim them

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

为了让您更好地理解,让我举个例子:

  1. 将 "a : b " 和“c:d”添加到列表中。
  2. 拆分元素,因此仅返回 "b " 和 "d "。
  3. Trim "b " 和 "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() 函数。
  • 不要 re-define 你的循环变量在你的循环中。

将您的循环更改为类似这样的内容,它应该会执行您想要的操作:

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))