ABAP开发

字符串处理数据

2019-04-11  本文已影响0人  扇动蝴蝶的翅膀

1. 大小写的转换

语法:
TRANSLATE  <c>  TO  UPPER  CASE.  "转成大写
TRANSLATE  <c>  TO  LOWER  CASE.  "转成小写

*大小写转换例子
PARAMETERS: letter(5) type c.
TRANSLATE letter TO UPPER CASE.
WRITE:/ letter.

2. 字符串长度

 语法: STRLEN(<c>)

* 输出字符串长度
* 当测试输入空格的时候,空格位于字符串后面时,忽略空格。
PARAMETERS: letter_a(10) type c.
DATA: stren type i.
stren = STRLEN( letter_a ).
WRITE:/ stren.

3. 合并字符串

语法: CONCATENATE <c1> ... <cn> INTO <c> [SEPARATED BY <s>].
将字符串c1到cn合并到字符串c中,中间用s间隔


*合并必须是字符类型,例:c、n
PARAMETERS: sh(5) type c,
            ch(5) type c,
            ph(5) type c.
DATA: result(20) type c.
CONCATENATE sh ch ph into result SEPARATED BY '-'.
WRITE:/ result.

合并必须是字符类型,例:c、n

4. 分割字符串

语法:SPLIT <c>  AT  <del>  INTO  <c1> ... <cn>.
将字符串c在分割符del处分割,子串分别存放到c1到cn,如果del在c中出现多于n-1次,则后面所有的字符串和分割符都放在最后一个字符串cn中

*分割字符串
PARAMETERS: ca(15) type c.
DATA: seg(1) type c VALUE '%',
      data1(5) type c,
      data2(5) type c.
SPLIT ca AT seg INTO data1 data2.
WRITE:/ data1, data2.

5. 加前导0,去前导0(适用于数字字符串)

加前导0:CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
去前导0:CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

6. 去前置空格

语法: CONDENSE (F)    [NO-GAPS].
其中:  [NO-GAPS] 去所有空格

7. 替换字符串

语法:REPLACE <str1> WITH <str2> INTO <c> [LENGTH <l>].
将字符串c中的str1子串的前I个字符替换成str2子串,替换后超出c的长度的部分被丢弃

8. 取部分字符串

 语法:  <f> [+<o>][<l>]

 DATA  T(10)   TYPE  C    VALUE  'ABCDEFGHIJ'.
    WRITE  /  T+2(4).  "得到 CDEF

9. 取代字符串内容

语法: REPLACE  <string1>  WITH  <string2>  INTO  <c>
将字符串<c> 中的<string1> 以<string2> 来取代

10. 字符串移位

 语法: SHIFT  <c>  [BY <n> PLACES]  [<modes>]

 <modes>:
   (1)空白,字符串往左移一位 
   (2)LEFT,字符串往左移 n 位  
   (3)RIGHT, 字符串往右移n位
   (4)CIRCULAR,字符串往左以环状方式移位
上一篇下一篇

猜你喜欢

热点阅读