主题:请教字符串问题
小孙
[专家分:0] 发布于 2006-01-02 14:29:00
如何为一组字符串(如下:任意阿拉伯数字组成,长度不限)每四位之间插入横杠“-”后组成新的字符串?
494176198349916
反之,又如何为有横杠“-”的字符串去掉横杠“-”,如下:
4941-7619-8349-916
回复列表 (共5个回复)
沙发
moz [专家分:37620] 发布于 2006-01-02 15:18:00
1.每四位加"-",默认源数据无误.
a$="494176198349916" '分明是身份证号码嘛,还那么年轻呢
do until i>=len(a$)
i=i+1
c=asc(mid$(a$,i,1))
if c>47 and c<58 then k=k+1
if k>4 then
k=k-4
mid$(a$,i)="-"+mid$(a$,i)
i=i+1
endif
loop
2.如果没有其它意外的东西,单纯是去掉"-"的话:
a$="4941-7619-8349-916"
do while instr(a$,"-")
i=instr(a$,"-")
a$=left$(a$,i-1)+mid$(a$,i+1)
loop
3.关于字符串的问题,呵呵......尽管冲我来.
板凳
小孙 [专家分:0] 发布于 2006-01-02 16:28:00
谢谢!但第一部分每四位加"-"源码编译后运行计算有误,把数码的后面三位数字去掉了,变成“4941-7619-8349-”,剩余的三位数同样要的,即是4941-7619-8349-916”形式,麻烦您再看看。还有呀,这组数是任意阿拉伯数字组成的,不是固定的,长度也不固定。
3 楼
moz [专家分:37620] 发布于 2006-01-02 19:27:00
呵呵,有道理,要修改.
a$="494176198349916" '分明是身份证号码嘛,还那么年轻呢
do until i>=len(a$)
i=i+1
c=asc(mid$(a$,i,1))
if c>47 and c<58 then k=k+1
if k>4 then
k=k-4
[color=FF00FF]a$=left$(a$,i-1)"-"+mid$(a$,i)[/color]
i=i+1
endif
loop
4 楼
xjh1026 [专家分:0] 发布于 2006-01-03 10:34:00
不太习惯上述方法,习惯使用FOR TO NEXT方法,拿出请各位高手多多指教
CLS
INPUT A$
FOR I=1 TO LEN(A$) STEP 4
IF LEN(A$)-I>4 THEN B$=B$+MID$(A$,I,4)+"-" ELSE B$=B$+RIGHT$(A$,LEN(A$)-I)
NEXT I
PRINT B$
END
5 楼
moz [专家分:37620] 发布于 2006-01-03 12:03:00
呵呵,抱歉,是我把问题复杂化了。
我来回复