ASP split后得到数组个数问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP split后得到数组个数问题相关的知识,希望对你有一定的参考价值。

比如说我接收过来的字符串按逗号隔开,正常来说会有8个元素,但有时候发送过来的元素不够,只有7个或者6个,我要如何判断它不存在,然后给不存在的数组元素赋值.
以下是我的代码,测试过多种方法,都下标越界.
<%
str="金雅,他他中,4月19日,thikpad,7400元 ,崔"
dim strbd(9)
strbd=split(str,",")
for i =0 to 8
if strbd(i) = NULL then
strbd(i)="空"
end if
next
for j = 0 to 8
response.write strbd(j)&"<br>"
next
%>

UBound什么的也都用过了的

你可以先判断数组长度,如果长度不够你指定位数则重新定义一个数组的长度
<%
str="金雅,他他中,4月19日,thikpad,7400元 ,崔"
strbd=split(str,",")
'判断数组是否是8个元素
if Ubound(strbd)<7 then
ReDim Preserve strbd(7) '重新定义数组长度
end if

for i =0 to UBound(strbd)
if strbd(i) = NULL or strbd(i)="" then
strbd(i)="空"
end if
next
for j = 0 to UBound(strbd)
response.write strbd(j)&"<br>"
next
%>
参考技术A 用SPLIT获取的数据是没有空值的,他会根据你的数组元素个数来定义维数,一般这种变长的数组用UBOUND就可以了
str="金雅,他他中,4月19日,thikpad,7400元 ,崔"
strbd=split(str,",")
for i=0 to ubound(strbd)
response.write strbd(i)&"<br />"
next

这样就可以直接输出整个数组的内容了,不用再去管什么空值,再去付值 ,如果必须为8个值 的话,有两种办法,你可以在字符串中加逗号来使拆分的数组增加维数,或者重定义数组维数
str="金雅,他他中,4月19日,thikpad,7400元 ,崔"
strbd=split(str,",")
if ubound(strbd)<8 then
n=ubound(strbd)
Redim preserve strbd(8)
for i=n+1 to ubound(strbd)
strbd(i)="空"
next
end if
for i=0 to ubound(strbd)
response.write strbd(i)&"<br />"
next
参考技术B <%
str="金雅,他他中,4月19日,thikpad,7400元 ,崔"
dim strbd
strbd=split(str,",")
for i =0 to UBound(strbd)
if strbd(i) = NULL then
strbd(i)="空"
end if
next
for j = 0 to UBound(strbd)
response.write strbd(j)&"<br>"
next
%>追问

这样只能取到发过来的元素个数,要是只有6个,那我后面的就没有了,我要怎么样给strbd(6),(7),(8)赋值

追答

这个,你不嫌麻烦的话,可以用另外的数组把这个数组装过来..虽然我觉得没什么实际意义..这个数组如果装的是你传进来的对象,你就没必要往这个对象里添加些没必要的东西...不过我不知道有没有类似的数据追加函数..因为我没遇到过这种情况

参考技术C str="金雅,他他中,4月19日,thikpad,7400元 ,崔,,"
strbd=split(str,",")
for i =0 to Ubound(strbd)
if strbd(i) = "" or isNULL(strbd(i)) then
strbd(i)="空"
end if
next
for j = 0 to Ubound(strbd)
response.write strbd(j)&"<br>"
next
参考技术D <%
str="金雅,他他中,4月19日,thikpad,7400元,崔"
dim strbd(9),strbd2
strbd2 = split(str,",")
for i = 0 to 8
if(i <= ubound(strbd2)) then
strbd(i) = strbd2(i)
else
strbd(i) = "空"
end if
next

for j = 0 to 8
response.write strbd(j)&"<br>"
next
%>

slice和split的区别

  1. slice  :

    定义:接收一个或两个参数,它可以创建一个由当前数组中的一项或多项组成的新数组,注意是新数组哦~ 也就是说它不会修改原来数组的值。 

     用法:slice( para1 ),会截取从para1开始的到原数组最后的部分;

        slice(para1,para2)会截取原数组的从para1开始的para2-para1个数组。 

     注意:当两个参数中存在负数时,用原数组的长度加上两个负数的参数作为相应的参数来计算。

        2 .split : 根据特定的字符切割字符串并且返回生成的数组。

                   例如 : str = “s-aaa-sss-eee-www”;

                            targetArr = str.slite(“-”);    //[‘s’,’aaa’,’sss’,’eee’,’www’]

以上是关于ASP split后得到数组个数问题的主要内容,如果未能解决你的问题,请参考以下文章

怎样从url得到对应的host和domain ?

得到数组的最后一个数的趣味实现

判断一个数能否通过一个数组中的数相乘而得到(数组中的数使用次数不限)

另类二分--透过枚举得到本质--搜索左边界

java复习路3

急!!!asp.net中怎样才能用select查询出一个表中的所有id的值,并将得到的id 赋值给一个数组???