TC官方合作论坛
标题:
替换字符串中指定位置的字符——源码
[打印本页]
作者:
贪吃蛇
时间:
2014-2-13 21:13
标题:
替换字符串中指定位置的字符——源码
本帖最后由 贪吃蛇 于 2014-2-13 22:15 编辑
直接上源码,还请大大们多指正,我会将修改过的源码发回帖。人人为我,我为人人。
function rechar(str,char,pos=-1)
//替换字符串中指定位置的字符
//参数:str,原字符串;char,用于替换的字符串;pos,整数型,被替换字符所在位置,从0开始计数,值为-1时,替换右边相同个数的字符.
//示例:rechar("0123456789","abc",3)的值是"012abc6789"
sizeS=str.strleng(str)
sizeC=str.strleng(char)
if(pos<-1 || pos>sizeS || sizeS-pos+1<sizeC)
traceprint("指定的位置超出原字符串长度,或原字符串从指定位置开始剩余的字符数量少于要替换的字符数,字符串原样返回")
return str
endif
if(pos==-1)
pos=sizeS-sizeC
endif
return str.strsub(str,0,pos)&char&str.strsub(str,pos+sizeC,sizeS)
endfunction
复制代码
作者:
贪吃蛇
时间:
2014-2-13 22:05
这个函数改了一下,把添加字符的功能加了进去,多了个参数,源码如下:
//在字符串中指定位置添加或替换字符
function rechar(str,char,pos=-1,add=false)
//替换字符串中指定位置的字符
//参数:str,原字符串;char,用于替换的字符串;pos,整数型,被替换字符所在位置,从0开始计数,值为-1时,替换右边相同个数的字符或把字符加到最右边.
//示例:rechar("0123456789","abc",3)的值是"012abc6789"
sizeS=str.strleng(str)
sizeC=str.strleng(char)
if(add==false)//替换
if(pos<-1 || pos>sizeS || sizeS-pos+1<sizeC)
traceprint("指定的位置超出原字符串长度,或原字符串从指定位置开始剩余的字符数量少于要替换的字符数,字符串原样返回")
return str
endif
if(pos==-1)
pos=sizeS-sizeC
endif
return str.strsub(str,0,pos)&char&str.strsub(str,pos+sizeC,sizeS)
else//添加
if(pos==-1)
pos=sizeS
endif
return str.strsub(str,0,pos)&char&str.strsub(str,pos,str.strleng(str))
endif
endfunction
复制代码
作者:
今非
时间:
2014-2-16 16:17
不错 不错 新生的大神啊 -----
作者:
贪吃蛇
时间:
2014-2-16 20:25
今非 发表于 2014-2-16 16:17
不错 不错 新生的大神啊 -----
大大拿俺耍笑了,俺只是新手,纯小白一枚,正在练基础。看看Rainshine的帖子,很多很全面的。
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1