gpt4 book ai didi

arrays - 连接除空之外的字符串数组

转载 作者:行者123 更新时间:2023-12-02 04:21:47 24 4
gpt4 key购买 nike

我尝试找到一种简单的方法来连接数组中的字符串 - 但前提是它们不为空。

示例:

Dim strArr(3)
strArr(0) = "This"
strArr(1) = "is"
strArr(2) = ""
strArr(3) = "a"
strArr(4) = "test"

strResult = Join(strArr, "***")
MsgBox strResult

将产生以下文本:This***is******a***test

但它应该是:This***is***a***test

所以空字符串应该被忽略。

最佳答案

Option Explicit

Dim aStrArray
aStrArray = Array("", "", "This", "", "", "is", "", "", "", "a", "test", "", "")

Dim strResult
strResult = MyJoin(aStrArray, "***")
WScript.Echo strResult


Function MyJoin( inputArray, inputDelimiter )
Dim delimiter
delimiter = Chr(1) & Chr(2)
With New RegExp
.Pattern = "^(?:" & delimiter & ")+" & _
"|(?:" & delimiter & ")+$" & _
"|(?:" & delimiter & ")+(" & delimiter & ")"
.Global = True
MyJoin = Replace(.Replace(Join(inputArray, delimiter), "$1"), delimiter, inputDelimiter)
End With
End Function

您可以将多次出现的分隔符替换为一个。

在示例代码中的函数中:

  1. 定义分隔符用于连接输入数组中的所有元素。创建它是为了减少在数据中找到它的可能性。
  2. 创建正则表达式来处理分隔符的初始、结束和重复出现。
  3. 使用生成的分隔符连接输入数组
  4. 正则表达式用于删除不需要的分隔符序列
  5. 生成的分隔符被输入分隔符替换

关于arrays - 连接除空之外的字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com