asp读取字符串中指定的字符

例如:string=“显示器|4$键盘|2$主板|3$鼠标|6$硬盘|1$内存|2$键盘|1$鼠标|1$”想要的结果是:显示器,4,1键盘,3,2主板,3,1鼠标,7,2... 例如:string=“显示器|4$键盘|2$主板|3$鼠标|6$硬盘|1$内存|2$键盘|1$鼠标|1$”想要的结果是:显示器,4,1 键盘,3,2 主板,3,1 鼠标,7,2 硬盘,1,1 内存,2,1
也就是显示的第一个字段是名称(如:显示器、键盘等);要的第二个字段是名称后面的数字(如:显示器后面是4),如果遇到重复的名称则累加数量(如:键盘和鼠标都出现重复,则数量累加:键盘是2+1,鼠标是6+1);要的第三个字段是名称出现的次数(如显示器出现1次,就是1,键盘和鼠标分别出现2次,就是2)
流香羽的代码运行问题:
If arrResult(0, i) = Then
这里是arrResult(0, i) 等于空么?
展开
 我来答
流香羽
2011-02-18 · TA获得超过1540个赞
知道小有建树答主
回答量:925
采纳率:50%
帮助的人:1336万
展开全部
''不好意思,代码没有环境调试
''很多错误没有直接发现,我帮你修正了,你不需要重新提问题
string=“显示器|4$键盘|2$主板|3$鼠标|6$硬盘|1$内存|2$键盘|1$鼠标|1$”
Dim i
Dim arrString, arrTemp
Dim arrResult(2,0)
arrString = Split(string, "$")
For i = 0 to UBound(arrString)
arrTemp = Split(arrString(i))
If UBound(arrTemp) = 1 Then
addArray arrTemp(0), arrTemp(1)
End If
Next

For i = 0 to UBound(arrResult, 2)
Response.Write arrResult(0, i) & "," & arrResult(1, i) & "," & arrResult(2, i)
Next

Function addArray (strName, intId)
Dim i, j
Dim blnHas
blnHas = false
For i = 0 to UBound(arrResult, 2)
If arrResult(0, i) = strName Then
blnHas = True
arrResult(1, i) = arrResult(1, i) & " , " & intId
arrResult(2, i) = arrResult(2, i) + 1
End If
Next
If not blnHas Then
j = UBound(arrResult, 2) + 1
Redim Preserve arrResult(2, j)
arrResult(0, j) = strName
arrResult(1, j) = intId
arrResult(2, j) = 1
End If
End Function
114547237
2011-02-18 · 超过27用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:86.8万
展开全部
给你个思路:可以考虑用split函数,用这个函数的目的是通过【$】做为分隔符进行分解,然后再通过FOR循环进行逐个判断,匹配就加1,不匹配则继续循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式