我有个问题,请大家帮帮忙:
我有个字符串,里面放的是从text里得到的东西
Dim str1 As String
str1 = Text1.Text '里面可以是abc,哈哈,III 啊不错 abc 等等
要求: (1)我想把 str1 处理一下 " ",",",";",","想这些东西都去掉,
       (2)并且以他们为分隔符,把剩下的东西放到数组中。
       (3)并且去掉相同的字符串。
结果: Array(长度和处理后的个数一致)   Array[0]="abc" Array[1]="哈哈"  Array[2]="III" Array[3]="啊不错"  
  希望大家帮帮我,小弟我是新来的没分给大家谅解

解决方案 »

  1.   

    [size=12px]我先谢谢各位了。[/size]
      

  2.   

    java里面有个split()方法,如果用java处理,我会先调用split(",")得到"abc","哈哈","III   啊不错   abc   等等",然后对"III   啊不错   abc   等等"用split(" "),得到"III""啊不错""abc""等等".主要思路是这样
      

  3.   

    用多次 replace 将字符 ,;, 全部转化为空格,然后用空格进行 split。
    过滤相同项只要定义一个集合 o as collection,然后将所有的字符串通过 o.Add s, s 的方式调用并忽略错误,最后 o 中就是不重复的字符串。
      

  4.   

    dim NewStr as string,S as string
    Dim str1 As String
    dim i as integer, j as integer,k as integer 
    dim YorArray() as string
    str1=Text1.Text  '里面可以是abc,哈哈,III   啊不错   abc   等等
    '如果第一个字符不符合要求,先去掉
    for i=1 to len(str1) 
         s=mid(str1,i 1) 
         if s="," or s=" " or s=";" or s=";" or s="," then '这里面还可以添加不需要的字符
            j=j+1 : NewStr=NewStr &"["& trim(str(j))&"]" 
         else
            NewStr=NewStr & s
         endif               
    next
    ' 以上是将不需要的东西替换成了[1],[2],[3],[4],........等,而且是按顺序的。
    ' 下面要做的是:将序号前面的字符串取出来按顺序放到一个数组中去。Redim YorArray(j) 
    for i=0 to j-1
        if InStr(NewStr,"["& trim(str(i)) &"]")>0 then  
           k=iif(i=0,1,i+3)
           YorArray(i)=mid(NewStr,k,InStr(NewStr,"["& trim(str(i)) &"]")-1)
        endif 
    next' 数组YorArray中如果有重复的元素,可以在一个for循环中去掉。for i=0 to j
        '自己动动手编写
    next     
      

  5.   

    上面交换一下:
    j=j+1:NewStr=NewStr &"["& trim(str(j)) &"]"改为
    NewStr=NewStr & "["& trim(str(j))& "]":j=j+1