请教一个数组转换为字符串的问题……

shizn2001 2009-11-01 12:10:08
就是有一个数组,内有N多元素……

然后我想,每若干个元素一组,变成一个字符串数组。

举例来说。。
a()=(A,B,C,D,E,F,G...Z,A,B,C,D,E...Z,...........Z) '共100个A~Z,也就是26*100个元素
b()=(ABCDEF...Z,ABCD...Z,......................) '每个元素都是A~Z,共100个元素。

这个应该咋整。。。?
...全文
109 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
getemail 2009-11-02
  • 打赏
  • 举报
回复
看#7楼
[Quote=引用 10 楼 shizn2001 的回复:]
的确不是A-Z。。。这么写只是表示方便,意思是一样的,打字太麻烦了……分组长度固定。
[/Quote]
shizn2001 2009-11-02
  • 打赏
  • 举报
回复
的确不是A-Z。。。这么写只是表示方便,意思是一样的,打字太麻烦了……分组长度固定。
getemail 2009-11-02
  • 打赏
  • 举报
回复
一定不是
[Quote=引用 6 楼 of123 的回复:]
楼主的实际应用,不一定是 A-Z 吧?

[/Quote]
of123 2009-11-02
  • 打赏
  • 举报
回复

楼主的实际应用,不一定是 A-Z 吧?
shizn2001 2009-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
for i = 1 to UBound(a) step 26
    for j = 1 to 26
        b(i \ 26 + 1) = b(i \ 26 + 1) & a(i + j)
    next
next
[/Quote]
发现一个问题,就是当i=1,j=1的时候,
b(i \ 26 + 1) = b(i \ 26 + 1) & a(i + j)
等价于b(1)=b(1)&a(2)
之后是b(1)=b(1)&a(3)
b(1)=b(1)&a(4)
。。。
b(1)=b(1)&a(27)
问题是,a(0)a(1)没有加进去,对了一个a(27)

改成j=0 to 25 就可以了

舉杯邀明月 2009-11-02
  • 打赏
  • 举报
回复
这个处理方法比较通用:
Sub CombArr()
Dim strTemp$
Dim i&, j&, p&
Dim lTeamWidth&, lGroupLen&

lTeamWidth = 26 '分组长度
lGroupLen = UBound(a)
i = LBound(a)
p = (lGroupLen - i + lTeamWidth) \ lTeamWidth
' 按数组下标从 0 开始
ReDim b(p - 1)
For p = 0 To p - 1
strTemp = ""
For j = 0 To lTeamWidth - 1
If ((j + i) > lGroupLen) Then Exit For
strTemp = strTemp & a(j + i)
Next
b(p) = strTemp
i = i + lTeamWidth
Next

End Sub

舉杯邀明月 2009-11-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 getemail 的回复:]
一定不是
引用 6 楼 of123 的回复:
楼主的实际应用,不一定是 A-Z 吧?


[/Quote]
这些提问的都是这样,不说清楚实际情况和实际需求。

我只好‘就事论事’了............

threenewbee 2009-11-01
  • 打赏
  • 举报
回复
for i = 1 to UBound(a) step 26
for j = 1 to 26
b(i \ 26 + 1) = b(i \ 26 + 1) & a(i + j)
next
next
舉杯邀明月 2009-11-01
  • 打赏
  • 举报
回复
完成楼主所需功能的最短代码:
Dim a, b
a = Array( ........) '赋值代码自己写
b = Split(Replace(Join(a, ""), "ZA", "Z-A"), "-")

舉杯邀明月 2009-11-01
  • 打赏
  • 举报
回复
Dim a() As Variant
Dim b() As String 'b 要声明成 String
'或者:
'Dim b As Variant
'Dim b

a = Array( ........) '赋值代码自己写
b = Split(Replace(Join(a, ""), "ZA", "Z-A"), "-")

booksoon 2009-11-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
for i = 1 to UBound(a) step 26
    for j = 1 to 26
        b(i \ 26 + 1) = b(i \ 26 + 1) & a(i + j)
    next
next
[/Quote]
若分组长度相同的话,可以这么做

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧