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中
                 常用场合:文件下载,对文件中的字段编辑。
  • 相关阅读:
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    210 Course ScheduleII
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    sql 开发经验
  • 原文地址:https://www.cnblogs.com/elegantok/p/1522249.html
Copyright © 2011-2022 走看看