定义字符串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"。怎么写代码才能实现呢?麻烦大家帮帮忙了!

解决方案 »

  1.   

    告诉你个笨办法:先用split把它分开,放到数据库里,然后用SQl语句取出来,再连接起来
      

  2.   

    再有一个办法:每次从前面取出一个数字,用instr判断余下的部分(s)里面有没有这个数字,如果没有就把它连在s的后面,如果有就算了。
    这样速度最快
      

  3.   


    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