ASP之Split将字符串转换为数组正确获取数组下标值

本文介绍了一种利用间隔字符串存储多选数据的方法,通过一个示例解释了如何避免因多写间隔符导致的数据处理错误,并提供了一个检测字符串转换为数组后最大下标的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  将数据使用间隔字符串存储可以减少少写几个数据库字段,也方便以后对扩展数据。

    比如:在论坛中用户的性格有多重性格、乐天达观、成熟稳重、幼稚调皮、温柔体贴等等,他们分别对应的值为0、1、2、3、4,在存储这些数据时使用间隔字符串,将数据存储到一个文本字段中。数据存储格式为:0|2|3|4|。

    而在使用间隔字符串分隔各项数据时,0|2|3|4|0|2|3|4在使用Split函数对其进行分隔的时候产生的数组最大下标值是不同的,往往在不注意的时候会在最右侧多写一个间隔字符。这样在输出的时候就会多遍历一个数据,为了避免这种情况的发生,就要对字符串进行检测。

   思路:

    1.检测右侧是否存在间隔字符串,如果存在则需要将数组最大下标值减一

    2.如果不存在则直接返回原数组最大下标

   代码:

Dim TempStr,TempArr,TempItem
TempStr
="第一项1|第二项1|第三项|"
TempArr
=Split(TempStr,"|")
Response.Write TempStr
&"<br />"
For TempItem=0 To UBoundStrToArr(TempStr,UBound(TempArr),"|")
    Response.Write TempArr(TempItem)
&"<br />"
Next
'*************************
'
函数:UBoundStrToArr
'
作用:检测原字符串转换为数组的最大下标值
'
参数:cCheckStr(需要检测的字符串)
'
      cUBoundArr(生成数组的最大下标值)
'
      cSpaceStr(间隔字符串)
'
返回:数组的最大下标值
'
************************
Public Function UBoundStrToArr(ByVal cCheckStr,ByVal cUBoundArr,ByVal cSpaceStr)
    
If Instr(cCheckStr,cSpaceStr)=0 Then
        UBoundStrToArr
=cUBoundArr
        
Exit Function
    
End If
    
Dim TempSpaceStr,UBoundValue
    TempSpaceStr
=Mid(cCheckStr,Len(cCheckStr)-Len(cSpaceStr)+1'获取字符串右侧间隔字符
    If TempSpaceStr=cSpaceStr Then '如果字符串最右侧存在间隔字符,则下标值需要-1
        UBoundValue=cUBoundArr-1
    
Else
        UBoundValue
=cUBoundArr
    
End If
    UBoundStrToArr
=UBoundValue
End Function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值