VB去除一个字符串中重复的字符串

Lisen_1987 2010-01-11 10:25:45
我写了一个函数,去关于去除重复字符串的,但是处理出来的结果是错误的,有哪位高手指点一下

需要这样处理:
传进来一个字符串,
比如"000001,000001,000001",最后返回"000001";
比如"000001,000002,000001",最后返回"000001,000002";
比如"000001,000001,000002",最后返回"000001,000002";
等等,就是重复的字符串合为一个,不重复的就保留,而且字符串之间用,号隔开


'去除重复字符串
Public Function RemoveRepeat(ByVal AStr As String) As String
Dim arrTemp() As String
Dim I As Long
Dim J As Long
Dim LStr As String
LStr = ""
arrTemp = Split(AStr, ",")
For I = 0 To UBound(arrTemp)
For J = I + 1 To UBound(arrTemp)
If arrTemp(I) = arrTemp(J) Then
arrTemp(J) = ""
End If
Next J
Next I

For I = 0 To UBound(arrTemp)
If arrTemp(I) <> "" Then
LStr = LStr & arrTemp(I)
If I < UBound(arrTemp) Then
LStr = LStr & ","
End If
End If
Next I

RemoveRepeat = LStr
End Function


我对VB代码不是很熟,不知道可以怎么处理
...全文
1125 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
SYSSZ 2010-01-11
  • 打赏
  • 举报
回复
Private Function filter(ByVal s As String)
Dim a, i, j, k
Dim b()
a = Split(s, ",")
For i = 0 To UBound(a) - 1
For j = i + 1 To UBound(a)
If a(i) = a(j) Then a(j) = ""
Next
Next
For i = 0 To UBound(a)
If a(i) <> "" Then
ReDim Preserve b(k)
b(k) = a(i)
k = k + 1
End If
Next
filter = b
End Function

Private Sub Form_Load()
Dim s, a
s = "000001,000001,000002"
a = filter(s)
S1 = Join(a, ",")
MsgBox S1
End Sub
zzyong00 2010-01-11
  • 打赏
  • 举报
回复
没什么大问题吧,略改改
Public Function RemoveRepeat(ByVal AStr As String) As String
Dim arrTemp() As String
Dim I As Long
Dim J As Long
Dim LStr As String
LStr = ""
arrTemp = Split(AStr, ",")
For I = 0 To UBound(arrTemp)
For J = I + 1 To UBound(arrTemp)
If arrTemp(I) = arrTemp(J) Then
arrTemp(J) = ""
End If
Next J
Next I

For I = 0 To UBound(arrTemp)
If arrTemp(I) <> "" Then
LStr = LStr & arrTemp(I) & ","
End If
Next I

RemoveRepeat = Mid(LStr, 1, Len(LStr) - 1)
End Function
yangzn76 2010-01-11
  • 打赏
  • 举报
回复
Public Function RemoveRepeat(ByVal AStr As String) As String
Dim c As New Collection '

Dim arrTemp
arrTemp = Split(AStr, ",")
On Error Resume Next

For i = 0 To UBound(arrTemp)
c.Add arrTemp(i), "K" & arrTemp(i)

Next i
Dim aTemp


For Each aTemp In c
RemoveRepeat = RemoveRepeat & "," & aTemp
Next
If c.Count >= 2 Then
RemoveRepeat = Mid(RemoveRepeat, 2)
End If
End Function

写了一个没有考虑效率。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧