字符串处理数据
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,字符串往左以环状方式移位