vbs打乱字符串字符排列的顺序

1、源码 

Dim Str, Str1, count, XngShi, tt, t, i, j
count=0
XngShi=Inputbox("请输入字符内容","提示")
If XngShi="" then 
Msgbox "输入不能为空!", 4096, "注意"
EndScript
End If
Msgbox "[输入内容]"& XngShi, 4096, "提示"
Do until count>=Len(XngShi)
Randomize
n=Int(Rnd*2*Len(XngShi))  '随机数范围是字符长度的两倍
Str1 = "."& n &"."
If Instr(Str, Str1)=0 then
Execute ("a"&n &"=""" & Mid(XngShi, count+1, 1)  & """")
Str = Str & Str1
Redim Preserve b(count)
b(count)=n
count = count+1
Else
End If
Loop
'解码顺序 变量名&Str的变量名
'冒泡排序
For j=1 to Len(XngShi)-1
  For i=Len(XngShi)-1 to j Step -1
      If b(i)<b(i-1) then
         t=b(i)
         b(i)=b(i-1)
         b(i-1)=t
      End If
  Next
Next
For i=0 to Len(XngShi)-1
cc=b(i)
WW=WW & Eval("a"& cc)
'tt = tt & b(i) & vbcrlf '冒泡排序的结果
Next
'Msgbox tt
Msgbox "[随即排列]"& WW, 4096, "提示"
'下面用于还原字符串位置
Dim MyArray
MyArray = Split(Right(left(Str, Len(Str)-1), Len(Str)-2), "..")
' UBound(MyArray)+1 一定等于 Len(XngShi)
Dim xx, yy, zz
For xx=0 to UBound(MyArray)
yy=MyArray(xx)
zz = zz& Eval("a"& yy)
Next
Msgbox "[还原结果]"& zz, 4096, "提示"

2、演示

双击以上源码,在弹出的界面中输入几个字符,如:acb,

110844_uwSG_2391658.png

随机排列结果:

110907_h0JR_2391658.png

转载于:https://my.oschina.net/u/2391658/blog/708806

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值