16,553
社区成员
发帖
与我相关
我的任务
分享
Private Sub splitStr(ByVal Str1$, ByRef str2$, ByRef str3$)
Dim arrS() As String
Dim s1, s2 As New System.Text.StringBuilder
Dim n As Integer
arrS = Split(Str1, ",")
For i As Integer = 0 To arrS.Length - 1
n = arrS(i).IndexOf("(")
s1.Append(arrS(i).Substring(0, n) & ",")
s2.Append(arrS(i).Substring(n + 1, Len(arrS(i)) - n - 2) & ",")
Next
str2 = s1.Remove(s1.Length - 1, 1).ToString
str3 = s2.Remove(s2.Length - 1, 1).ToString
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim s1, s2, s3 As String
s1 = "A(1),B(2),C(3)"
splitStr(s1, s2, s3)
Console.WriteLine(s2)
Console.WriteLine(s3)
End Sub
Sub CleanInput(ByVal Input As String, ByRef Out1 As String, ByRef Out2 As String)
'清理全部非数字和字母字符串,但保留,,
'若需要将,替换则在后面加.Replace(",", ",")
Dim TmpStr As String = System.Text.RegularExpressions.Regex.Replace(Input, "[^\w\,,]", "")
'替换数字
Out1 = System.Text.RegularExpressions.Regex.Replace(TmpStr, "[0-9]", "")
'替换字母
Out2 = System.Text.RegularExpressions.Regex.Replace(TmpStr, "[A-Z]", "")
End Sub
Private Sub splitStr(ByVal Str1$, ByRef str2$, ByRef str3$)
Dim arrS() As String
Dim s1, s2 As New System.Text.StringBuilder
Dim n As Integer
arrS = Split(Str1, ",")
For i As Integer = 0 To arrS.Length - 1
n = arrS(i).IndexOf("(")
s1.Append(arrS(i).Substring(0, n) & ",")
s2.Append(arrS(i).Substring(n + 1, Len(arrS(i)) - n - 2) & ",")
Next
str2 = s1.Remove(s1.Length - 1, 1).ToString
str3 = s2.Remove(s2.Length - 1, 1).ToString
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim s1, s2, s3 As String
s1 = Space(1000).Replace(" ", "A(1),B(2),C(3),")
s1 = s1.Remove(s1.Length - 1, 1)
Dim t As Integer = My.Computer.Clock.TickCount
'CleanInput(s1, s2, s3)
splitStr(s1, s2, s3)
Console.WriteLine("计算1000个花费时间:" & My.Computer.Clock.TickCount - t)
Console.WriteLine("输出str2:" & s2)
Console.WriteLine("输出str3:" & s3)
End Sub