Farseer

导航

几个字符串处理函数

经常要用到一些字符串的处理函数,前段时间写过一些,这里再补充几个,虽然简单,但用的时候一时想不起来就要自己重写一个也是比较浪费时间的事。
Global类里有几个字符串处理的静态方法,可以全局调用的。
strLFix,strRFix,strRep
这两个函数可以用做用特定的字符补齐的函数,不满多少位的时候就用特定的字符补齐,比如数字如果不满三位就用前置0或者后置0补齐。如果想在前面用0补齐,就用strRFix,如果想在后面用0补齐,就用strLFix。看看代码吧:
当数字长度不满足三位的时候就用前置0补齐,比如3就补齐成003,如果是13就补齐成013,如果是130就保持不变。
static void strRFixDemo(Args _args)
{
    ;
    print strRFix(
'3',3,'0');
    print strRFix(
'13',3,'0');
    print strRFix(
'130',3,'0');
 
    pause;

}
第一个参数是要处理的字符串,第二个参数是要把字符串补齐到多少位,第三个参数是用哪个字符补齐。
如果要处理的字符串的长度比第二个参数大的话,会怎么处理那?我们看一下这个方法的源代码吧:
static str strRFix(str _str, int _length, char _char = ' ')
{
    
return strrep(_char, _length - strlen(_str)) + substr(_str, 1, _length);
}
substr这个函数很容易理解就是取字符串的一部分,而strRep这个方法是什么?在很多语言里,这个方法是字符串替换函数,即用指定的字符串替换换字符串中部分内容,但在AX里用strReplace这个函数来实现这个功能,strRep这个函数实际上是复制的功能,Rep我想应该是Replicate的缩写,比如如下代码:
static void strRepDemo(Args _args)
{
    ;
    print strRep(
"Hello World",2);
    pause;
}
的输出为HelloWorld HelloWorld,第二个参数是复制次数的意思,这里指定为2,所以把源字符串复制了2遍。
于是我们不难看出,strRFix实际上由两部分组成strRep和subStr,如果调用strRFix函数时第二个参数的长度比源字符串的长度短的话,显然strRep的第二个参数就是负数了,这样该函数返回为空,而只有subStr返回值,这样实际上就等效于subStr了,只不过是从源字符串左边开始截取的。

posted on 2008-07-12 22:07  佛西亚  阅读(1345)  评论(0编辑  收藏  举报