为了账号安全,请及时绑定邮箱和手机立即绑定

如下情况,实在想不出什么好办法,望高手指点!!!

如下情况,实在想不出什么好办法,望高手指点!!!

青春有我 2022-08-04 19:15:51
在TEXT1输入3个字符,可能是a1b、ca2、1ad、2ac...等等..(关键在于这里,3个字符是随机的,可能出现的组合有很多。。。现在要做的就是把text1里面的三个字符转换成我说的那样,如题。a替换为12...b替换成23...c替换成24...2替换成14比如我在TEXT1输入alb则输出123123。。。 ca2则输出241214。。。1ad则输出311241。。。 2ac则输出141224。。。请问如何实现。。。回答好的,详细的加分,真的!!!我编的代码失败在于这里,希望大家不要犯跟我一样低级的错误1)将text1里面的a1b的a替换成12'这时text1=121b2)将text1里面的a1b的1替换成31。。。’这时替换的就不是a1b而是121b.............
查看完整描述

1 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

实现的方法很多,下面随便给出一种用结构体实现的方法:

Private Type MyDict '定义一个源字符与目的字符的结构体
Src As String '源字符,如“a”
Dest As String '转换后的目的字符,如"12"
End Type

Private Function Convert(s As String) As String

'函数说明:
'参数s,是需要转换的源字符串,如a1b
'返回值:转换后的字符串,如123123
'注:函数本身不限制源字符串长度

Dim MyDictList(5) As MyDict '用于存储转换规则的数组,可根据具体要求修改数组大小
Dim i, j As Integer '循环变量
Dim TempRes As String '用于存储临时结果的临时变量
TempRes = ""
Convert = ""

'开始定义详细的转换规则
MyDictList(0).Src = "a"
MyDictList(0).Dest = "12"

MyDictList(1).Src = "1"
MyDictList(1).Dest = "31"

MyDictList(2).Src = "b"
MyDictList(2).Dest = "23"

MyDictList(3).Src = "c"
MyDictList(3).Dest = "24"

MyDictList(4).Src = "2"
MyDictList(4).Dest = "14"

MyDictList(5).Src = "d"
MyDictList(5).Dest = "41"

'关键的转换部分
For i = 1 To Len(s)
TempRes = Mid(s, i, 1)
For j = 0 To UBound(MyDictList)
If MyDictList(j).Src = Mid(s, i, 1) Then
TempRes = MyDictList(j).Dest
Exit For
End If
Next
Convert = Convert & TempRes
Next

End Function

使用方法:把上述代码复制过去以后,直接调用Convert函数,如
MsgBox Convert("a1b")
即可在对话框中弹出结果


查看完整回答
反对 回复 2022-08-08
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号