删除字符串中重复的字符,保留无重复字符

yangyangwhl 2010-10-19 07:10:25
定义字符串a="#13,#107,#90,#94,#17,#94,#106,#120,#20,#120,#99,#111,#23,#111,#114,#107,#13,#17,#20,#23"
如何去除字符串中的重复字符(只要两个字符重复,就删除两个字符,不用保留)?
假如#13在1个位置,与第17个位置上的#13重复,则删除这两个数字,数组中就没有#13了。
在这个例子中,去除所有重复的字符后,字符串a就只剩下四个元素a="#90,#106,#99,#114"。怎么写代码才能实现呢?麻烦大家帮帮忙了!
...全文
150 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangyangwhl 2010-10-19
  • 打赏
  • 举报
回复
高手,绝对是高手!
[Quote=引用 3 楼 alzeng 的回复:]

VB code

Sub NewStr()
Dim Arr, k%, a$
Dim Dic As Object, Itm

a = "#13,#107,#90,#94,#17,#94,#106,#120,#20,#120,#99,#111,#23,#111,#114,#107,#13,#17,#20,#23"
Arr = Split(a, ",")
Se……
[/Quote]
ZenRoi 2010-10-19
  • 打赏
  • 举报
回复

Sub NewStr()
Dim Arr, k%, a$
Dim Dic As Object, Itm

a = "#13,#107,#90,#94,#17,#94,#106,#120,#20,#120,#99,#111,#23,#111,#114,#107,#13,#17,#20,#23"
Arr = Split(a, ",")
Set Dic = CreateObject("Scripting.Dictionary")
For k = 0 To UBound(Arr)
Dic(Arr(k)) = Dic(Arr(k)) + 1
Next
For Each Itm In Dic
If Dic(Itm) > 1 Then Dic.Remove (Itm)
Next
a = Join(Dic.keys, ","): Set Dic = Nothing
Debug.Print a
End Sub
Kill2010 2010-10-19
  • 打赏
  • 举报
回复
再有一个办法:每次从前面取出一个数字,用instr判断余下的部分(s)里面有没有这个数字,如果没有就把它连在s的后面,如果有就算了。
这样速度最快
Kill2010 2010-10-19
  • 打赏
  • 举报
回复
告诉你个笨办法:先用split把它分开,放到数据库里,然后用SQl语句取出来,再连接起来

7,763

社区成员

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

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