永发信息网

VBS 去掉字符串中的重复项

答案:5  悬赏:60  手机版
解决时间 2021-02-19 20:56
strs = "sadafs"
For i = 0 to Len(strs)
For j = i+1 to Len(strs)
If Mid(strs, i, 1) = Mid(strs, j, 1) Then
strs= Mid(strs, 0, i-1)& Mid(strs, i+1, Len(strs))
End If
next
next

msgbox str2

例如:“sadafs”结果“df”

请问下我上面错在哪里了,以及如果错了正确应该怎样写呢!
感谢!

关键用 这里用mid方法,提示错误!应该怎样用?
最佳答案
<script language="vbScript">

s = " sadafs"
tmp=" "
for i = 1 to len(s)
c=mid(s,i,1)
tmp =tmp & c
if instr(tmp,c)>0 then s=replace(s,c,"")
next

msgbox tmp

</script>
全部回答
程序思维已经错了。 最好的方法是统计每个字符在整个字符串中出现的次数,如果为1次就显示,否则就不显示,这样不就可以了。
兄弟,你这算法确实不妥.不过我也不知道更好的办法,呵... ---------- strs = "sadafs" n=len(strs) str=strs For i = 1 to n for j = 1+1 to n If Mid(strs, i, 1) = Mid(strs, j, 1) and i <> j Then str=Replace(str,Mid(strs, i, 1),"") next next msgbox str ---------- 注: 你代码中的Mid取变量位数是从0位开始取起的,所以出错.Mid的取位数从1开始的. 第一个For也应该从1开始.你这么两个For套用,始终会出来i=j,所以没重复的字符也会被误认为重复的.
你的程序有两处错误: 1.mid函数中,字符串的起始下标是1而不是0 2.你的算法有误,你一边比较一边修改了字符串,使后面得到的子串与预期不同。 下面的代码供你参考。 strs = "sadafs" Do l = Len(strs) a = Mid(strs, 1, 1) strs = Replace(strs, a, "") If (l - Len(strs)) = 1 Then s = s & a Loop While l > 0 MsgBox s
mid中,起始下标是1而不是0 你的算法有误,你一边比较一边修改了字符串,使后面得到的子串与预期不同。 我修改的是: Dim str,temp str = "sadafs" For i = 2 to Len(str) if mid(str,1,1) = mid(str,i,1) then For j = 1 to Len(str) if mid(str,j,1) <> mid(str,1,1) then temp = temp & mid(str,j,1) end if next end if str = temp next msgbox str
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
海军中最好的兵种叫什么名字
魔兽争霸保卫诸葛亮游戏地图有诸葛亮(魂) 在
庄户水饺家常菜特色餐厅地址在什么地方,想过
求解答英语语法 Love conquers all是svo(主
我在家休假,单位发了绩效,有个同事说我不上
为什么有些人的体毛那么多
建设银行开户需要什么
公司会核对六级成绩和网申一样吗
佛水坳地址在哪,我要去那里办事
通根身旺,坐财官比肩,但支中比肩财星化火为
雅馨鲜花礼品在哪里啊,我有事要去这个地方
要么手持盾牌,要么躺在盾牌上这句话意思?
我的身体的骨骼一边大一边小,是怎么回事?
625的0.25次方等于多少
华莱士官河横路店我想知道这个在什么地方
推荐资讯
同学过生日准备特别惊喜的好点子,求各位大神
求老挝语翻译
9.30号国宴问题
美术写实是什么意思
层高和净高的公式介绍
请问,天津市企业财务会计信息网络报送系统,
应收账款带给企业的成本费用有( )。A.机会成
北方联合广播电视网络股份有限公司铁岭新城区
下列哪一种生态系统受人工控制,一旦人的作用
乌木筷子多少钱一双
钻孔灌注桩 护筒的作用
ppt2010怎么设置动作按钮
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?