字符串的特殊处理:无则加入,有则去除...(新人上路,请各位大大不吝赐教!)

我想静静0v0 2008-07-10 03:14:09

输入的一串字符:a;b;c(一组) d(一组) e;f(一组) d(一组) a;b;c(一组) e;f(一组)
经过处理之后的可以得到的字符串为:
a;b;c(一组) a;b;c;d(一组) a;b;c;d;e;f(一组) a;b;c;e;f(一组) e;f(一组)


Dim str(n - 1) As String
Dim f(n - 1) As String
For i = 0 To n - 1
str(i) = c(i, 1)
Next
f(0) = str(0)
For i = 1 To n - 2
f(i) = str(i - 1) & ";" & str(i)
Next
For j = 0 To n - 4
If Not f(j + 1).Contains(str(j + 2)) Then
f(j + 2) = f(j + 2).Replace(";" & str(j + 2), "")
Else
f(j + 2) = f(j + 1) & ";" & str(j + 2)
End If
Next

思想是:第一不变。
前一项与后一项相比,若不同则加入变为新的前一项;若前一项包含有后一项的内容则在下一个中去除

代码如上,可实现结果总不如人意,烦请达人指教,多多感激~





...全文
68 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
我想静静0v0 2008-07-10
  • 打赏
  • 举报
回复
修改了一下,可以正常显示了,可是结果貌似不正常...
与手工推算出的结果仍是有差,麻烦达人帮帮忙
不晓得问题在哪里诶,好困扰...:<

Dim str(n - 1) As String
Dim f(n - 1) As String
Dim u(n - 2) As String
For i = 0 To n - 1
str(i) = c(i, 1)
Next
f(0) = str(0)
'Dim ArrayList As New ArrayList()
For i = 1 To n - 1
f(i) = str(i - 1) & ";" & str(i)
Next
For j = 0 To n - 4
If Not f(j + 1).Contains(str(j + 2)) Then
f(j + 2) = f(j + 1) & ";" & str(j + 2)
Else
f(j + 2) = f(j + 2).Replace(";" & str(j + 2), "")
End If
Next
For i = 0 To n - 2
u(i) = f(i)
Next
我想静静0v0 2008-07-10
  • 打赏
  • 举报
回复
补充:
上面代码中的f(n-1)即为6项,分别是---
a;b;c(一组) a;b;c;d(一组) a;b;c;d;e;f(一组) a;b;c;d;e;f;d(一组)
a;b;c;d;e;f;d;a;b;c(一组) a;b;c;d;e;f;d;a;b;c;e;f(一组)

str(n-1)即是代表输入的6组字符串。


16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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