我们中的一些人遗憾地仍然支持像VB6这样的传统应用。我忘记了如何解析字符串。
给出一个字符串:
Dim mystring As String = "1234567890"
如何在每个字符中循环VB6并执行类似
的操作 for each character in mystring
debug.print character
next
在C#中我会做类似
的事情 char[] myChars = mystring.ToCharArray();
foreach (char c in theChars)
{
//do something with c
}
有什么想法吗?
非常感谢
答案 0 :(得分:9)
您可以使用“中间”功能来获取单个字符:
Dim i As Integer
For i = 1 To Len(mystring)
Print Mid$(mystring, i, 1)
Next
请注意,这是未经测试的。
答案 1 :(得分:2)
没有可能在字符串上使用foreach。
使用
Dim i As Integer
For i = 1 To Len(YourString)
Result = Mid$(YourString, i, 1)
Next
请注意Result
的类型是长度为1的字符串,没有字符或字节类型。
如果性能很重要,则必须将字符串转换为bytearray(使用StrConv
),然后像这样循环。
Dim i As Long
For i = 0 To UBound(Data)
Result = Data(i) ' Type is Byte '
Next
效率更高。
答案 2 :(得分:1)
最简单的方法是将字符串转换为字节数组并迭代字节数组(将每个字节转换为字符)。
Dim str As String
Dim bytArray() As Byte
Dim count As Integer
str = "This is a string."
bytArray = str
For count = 0 To UBound(bytArray)
Debug.Print Chr(bytArray(count))
Next
答案 3 :(得分:1)
不要循环;相反,设置对Microsoft VBScript正则表达式库的引用,并使用正则表达式来实现“做某事”的目标。