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

一个这样的字符串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)里面的数也是可变的。

白猪掌柜的
浏览 141回答 4
4回答

慕码人2483693

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

千万里不及你

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

神不在的星期二

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

至尊宝的传说

Private Sub Command1_Click()l = "0103050811"For i = 1 To Len(l) Step 2j = Val(Mid(l, i, 2))If j <= UBound(b) Then Print b(j)NextEnd Sub
打开App,查看更多内容
随时随地看视频慕课网APP