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

需要将如下这些提取出来的元素组成一个新的数组,应该怎么做?

需要将如下这些提取出来的元素组成一个新的数组,应该怎么做?

白猪掌柜的 2022-06-15 15:11:22
一个这样的字符串L=0103050811,从左往右,每两位数代表另一个数组B里面元素的位置,怎么将那些元素提取出来?数组B里面有很多数,例如B(I)=100,95,90,85,80,75,70,65,60,55,50,45,40。字符里从左到有每两个数提取出来是01,03,05,08,11,分别对应数组B(I)里面的元素:100,90,80,65,50,并将这些提取出来的元素组成一个新的数组,应该怎么做?字符串是可变的,B(I)里面的数也是可变的。
查看完整描述

4 回答

?
慕码人2483693

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

'这是一个函数,s是数字字符串,ary是数组,返回一个新的数组
'这里假设B是Integer型,返回的也是Integer,你根据自己情况改一下(里面的temp也要改),
Function GetBData(s As String, ary() As Integer) As Integer()
Dim lLen As Long, i As Long
Dim temp() As Integer
lLen = Len(s) \ 2
ReDim temp(lLen - 1)
For i = 0 To lLen - 1
temp(i) = ary(CInt(Mid(s, i * 2 + 1, 2)) - 1)
Next
GetBData = temp
End Function
调用方法:
Dim r() As Integer
r = GetBData(L, B)'这里的r就是得到的新数组


查看完整回答
反对 回复 2022-06-20
?
千万里不及你

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

你是想问每两个数提取出来对应的字符吗
Dim L As String, I As Integer
L = "0103050811"
For I = 2 To Len(L) Step 2
A = Right(Left(L, I), 2)
'A = Chr(Right(Left(L, I), 2))'如果想转换成字符就用这句
Next

查看完整回答
反对 回复 2022-06-20
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

'假设B数组已经定义并赋值
dim NewArray()
Private Sub Command1_Click()
L="0103050811"
redim NewArray(len(L)/2)
n=0
For i = 1 To Len(L) Step 2
j = Val(Mid(L, i, 2))
If j <= UBound(b) Then newarray(n)=b(j)
n=n+1
Next
End Sub


查看完整回答
反对 回复 2022-06-20
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

Private Sub Command1_Click()
l = "0103050811"
For i = 1 To Len(l) Step 2
j = Val(Mid(l, i, 2))
If j <= UBound(b) Then Print b(j)
Next
End Sub

查看完整回答
反对 回复 2022-06-20
  • 4 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信