zoukankan      html  css  js  c++  java
  • abap 字符串处理

    1.对字符串的操作
           1).SHIFT:截断字符串
             SHIFT {c} [BY {n} PLACES] [{mode}].:
                 作用:去掉字符串的前n个位置的字符,如果n未指定,默认为1,如果指定的n小于等于0,则字符串不变。如果n超出字符串的长度,则字符串变空,所以在做此操作的时候要注意n的指定。可以首先获得该字符串的长度,方法:len=STRLEN(C)。
                     Mode:指定字符串截断的方向。
                       LEFT:从左边截断
                       RIGHT:从右边截断
                       CIRCULAR:把左边的字符放到右边。
               SHIFT {c} UP TO {str} {mode}.:
                 作用:把字符串中在str以前的字符都去掉,同样可以指定mode,原理同上。
               SHIFT {c} LEFT DELETING LEADING {str}.
               SHIFT {c} RIGHT DELETING TRAILING {str}.:
                 作用:这两个语句就是把字符串c中前的(LEFT)或者后的(RIGHT)的字符str都去掉。
               以上语句常用的场合:
                 A.去掉字符串中的前导字符。例如:如果alv中定一了一个字段是10位的字符,里面放的是so,po等number,而你不想显示前面的0,那么就可以这样做:SHIFT {c} LEFT DELETING LEADING 0.
                 B.已知某个字符串中包含固定的字符,想把这个固定字符前面的字符删掉,那么可以使用:SHIFT {c} UP TO {str}。例如:某个物料,通过增强mga00002和mga00003对其加了前缀,这个前缀部分是在某固定值表中取得的数据,在具体显示中,要把其前缀去掉。如TE-MRP-MAT1中想把te去掉,mrp表示该物料是跑mrp的,需求要求把te-去掉,mrp可以在固定值表中取得,则可以使用SHIFT {c} UP TO 'MRP'.
           2).REPLACE:替换字符串
             REPLACE {str1} WITH {str2} INTO {c} [LENGTH {l}].:
                 作用:把字符串c中的str1替换成str2,如果指定l,就是指定了替换的长度。如果替换成功,则SY-SUBRC设置成0。
                 常用场合:
                     字符串的替换操作比较常用,需要注意的是l的指定长度。
           3). TRANSLATE:转换字符串
               TRANSLATE {c} TO UPPER CASE.
               TRANSLATE {c} TO LOWER CASE.:
                 作用:字符串的大小写的转换
               TRANSLATE {c} USING {r}. :
                 作用:根据规则r转换字符串c
               常用场合:
                 Sap系统一般都是使用大写字母的,但是某些特定的字段却是用小写字母来标记的,在操作这些字段的时候就需要注意大小写的转换了。转换规则倒是不太常用,到现在我还没有遇到过。
           4). SEARCH:查找字符串
               SEARCH {c} FOR {str} {options}.:
                 作用:在字符串c中查找str,如果找到了,SY-SUBRC为0,SY-FDPOS为找到字符串的具体位置。
                 需要说明的地方:注意模式的使用
                     指定str:查找str,str中后面的空格忽略
                     指定.str.:查找str,包含了str中尾部的空格
                     指定*str:查找以str结尾的字符串
                     指定str*:查找以str开头的字符串
                   {options}的指定:
                     主要用到的就是:STARTING AT {n1}指定开始位置
                                     ENDING AT {n2}指定结束位置
                 常用场合:
                     一般用来判断某个字符串是否符合条件。也可以结合其他语句对字符串进行操作。
           5).CONDENSE:去掉字符串中的空格
               CONDENSE {c} [NO-GAPS].:
                 作用:去掉字符串中的前面和后面的空格,如果指定NO-GAPS,则去掉字符串中的所有空格。
                 常用场合:获得字符串的精确长度,用于判断。
           6).SPLIT:拆分字符串
               SPLIT {c} AT {del} INTO {c1} ... {cn}.
                 作用:按照分割字符del把字符串c分割成c1…cn。
               SPLIT {c} AT {del} INTO TABLE {itab}.
                   作用:按照分割字符del把c分割,然后放到内表中的相应字段
               常用场合:
                   文件名的分割,根据完整的文件路径加文件名把文件名分割出来。
                   难点:无法确定要分割多少次.
                   解决方法:两两分割,到最后的那个就是了。例如:str=c:\dir1\dir2\dir3\file
                     Split str at '\' into str1 str2.
                     Find str2 for '/'.
                     Check sy-subrc = 0.
                     Do.
                       Find str2 for '/'.
                       If sy-subrc = 0.
                         Split str2 into str1 str2.
                       Else.
                         Exit.
                       Endif.
                     Enddo.
                   文件上传的类型是字符串,把其分割后放到内表中。例如上面的问题:
                     data: begin of itab occurs 0 ,
                           col1(30) type c,
                         end of itab.
                     Split str at '\' into table itab.
                     describe table itab lines line.
                     Read table itab index line.
                     Itab-col1就是file
           7).CONCATENATE:连接字符串
               CONCATENATE {c1} ... {cn} INTO {c} [SEPARATED BY {s}].
                 作用:把c1…cn用s分隔连接到c中
                 常用场合:文件下载,对文件中的字段编辑。
  • 相关阅读:
    HTTP压力测试工具apache的ab的使用方法
    [转]Memcached 协议中英文对照
    [转]Windows下删除.svn文件夹的最简易方法
    [转]50 个便利的 Web 设计工具
    Navicat数据存放位置和备份数据库路径设置
    Silverlight第三方控件
    MVC3.0中使用JQuery.DataTable插件。
    什么是句柄?为什么会有句柄?HANDLE
    WPF内存释放
    ArcGis for wpf 符号渲染
  • 原文地址:https://www.cnblogs.com/elegantok/p/1522249.html
Copyright © 2011-2022 走看看