zoukankan      html  css  js  c++  java
  • 几个字符串处理函数

    经常要用到一些字符串的处理函数,前段时间写过一些,这里再补充几个,虽然简单,但用的时候一时想不起来就要自己重写一个也是比较浪费时间的事。
    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了,只不过是从源字符串左边开始截取的。
  • 相关阅读:
    bzoj 3438: 小M的作物
    bzoj 4445 [SCOI2015] 小凸想跑步
    hdu 4899 Hero meet devil
    hdu 4898 The Revenge of the Princess’ Knight
    【NOIP1999】拦截导弹
    【OpenJudge】2991:2011 题解
    【cqbzoj】1785:残缺棋盘上放车的方案数 --状压dp --输入毁一生
    【cqbzoj】:1330 Prime DP(Ahio2001 质数和分解)
    【Openjudge:Noi】7891:一元三次方程求解 c++
    【USACO FEB 2010 SILVER】吃巧克力(Chocolate Eating)
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/1241440.html
Copyright © 2011-2022 走看看