关于ABAP中处理字符串的方法,非常详细,学习过程中总结一下分享给大家,,,
ABAP/4 提供多个处理类型 C 即字符串 的数据对象的关键字。
处理字符串 的方法有:
1.拆分字符串split
2.连接字符串
3.获得字符串长度
4.压缩字段内容(去空格)
5.搜索字符串
6.覆盖字符字段
7.替换字段内容
8.转换大/小写并替换字符
9.转换为可排序格式
10.根据第一个或最后一个字符移动字段串SHIFT
11.MOVE TO 分配字符串部分
12.字符串的比较
-----------------------------------
1.拆分字符串
语法:
SPLIT AT INTO ... .
1 DATA: STRING(60),
2 P1(20) VALUE '',
3 P2(20) VALUE '',
4 P3(20) VALUE '',
5 P4(20) VALUE '',
6 DEL(3) VALUE '***'.
7 STRING = 'Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5'.
8 WRITE STRING.
9 SPLIT STRING AT DEL INTOP1 P2 P3 P4.
10 WRITE: /'P1:', P1.
11 WRITE: /'P2:', P2.
12 WRITE: /'P3:', P3.
13 WRITE: /'P4:' , P4.
该过程的输 出如下:
Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5
P1:Part 1
P2:Part 2
P3:Part 3
P4:Part 4 *** Part 5
2.连接字符串
语法:
CONCATENATE ... INTO [SEPARATED BY ].
1 DATA: C1(10) VALUE 'Sum',
2 C2(3) VALUE 'mer',
3 C3(5) VALUE 'holi ',
4 C4(10) VALUE 'day',
5 C5(30),
6 SEP(3) VALUE '- '.
7 CONCATENATE C1 C2 C3 C4 INTOC5.
8 WRITEC5.
9 CONCATENATE C1 C2 C3 C4 INTO C5 SEPARATED BYSEP.
10 WRITE / C5.
该过程的输 出如下:
Summerholiday
Sum - mer - holi - day
在 C1 到 C5 之间,忽略 尾部空格。 分隔符 SEP 保留尾部空格。
3.获得字符串长度
语法:
[COMPUTE] = STRLEN( ).
1 DATA: INT TYPEI,
2 WORD1(20) VALUE '12345'.
3 WORD2(20).
4 WORD3(20) VALUE '4 '.
5 INT =STRLEN( WORD1 ).
6 WRITEINT.
7 INT =STRLEN( WORD2 ).
8 WRITE /INT.
9 INT =STRLEN( WORD3 ).
10 WRITE / INT.
结果分别是 5,0 和 4。
WORD3(20) VALUE '4 '. 结果为 4 。
请注意,STRLEN 将操作数 作为字符数 据类型处理 ,而不考虑 其实际类型 。不进行转换。
4.压缩字段内容
语法:
CONDENSE [NO-GAPS].
该语句去除字段 中的前导空格并用一个空格替换其它空格序列 。结果是左对齐单词, 每个单词用空格隔开。 如果指定附 加的 NO-GAPS, 则去除所有空格。
1 DATA: STRING(25) VALUE 'one two three four',
2 LEN TYPEI.
3 LEN = STRLEN( STRING).
4 WRITE: STRING, '!'.
5 WRITE: / 'Length: ', LEN.
6 CONDENSE STRING.
7 LEN = STRLEN( STRING).
8 WRITE: STRING, '!'.
9 WRITE: / 'Length: ', LEN.
10 CONDENSE STRING NO-GAPS.
11 LEN = STRLEN( STRING).
12 WRITE: STRING, '!'.
13 WRITE: / 'Length: ', LEN.
该过程的输出如下:
one two three four !
Length: 25
one two three four !
Length: 18
onetwothreefour !
Length: 15
请注意,字段 STRING 的总长度保持不变(注意!的位置),但删除的空格再次出现在右边。
5.搜索字符串
语法:
SEARCH FOR .
该语句在字 段 中搜索 中的字符串 。如果成功 ,则将 SY-SUBRC 的返回代码 值设置为0,并将 SY-FDPOS 设置为字段 中该字符串 的偏移量。
否则将 SY-SUBRC 设置为4。
搜索串 可为下列格 式之一:
目 的
---------------------------------
搜 索 (任何字符顺序)。忽略尾部空格。
.. 搜 索 ,但是不忽略尾部空格 。
* 搜 索以 结尾的词。
* 搜 索以 开始的词。
单词之间用 空格、逗号 、句号、分 号、冒号、 问号、叹号 、括号、斜 杠、加号和等号等分隔 。
1 DATA STRING(30) VALUE 'This is a little sentence.'.
2 WRITE: / 'Searched', 'SY-SUBRC', 'SY-FDPOS'.
3 ULINE /1(26).
4 SEARCH STRING FOR 'X'.
5 WRITE: / 'X', SY-SUBRC UNDER 'SY-SUBRC',
6 SY-FDPOS UNDER 'SY-FDPOS'
7 SEARCH STRING FOR 'itt '.
8 WRITE: / 'itt ', SY-SUBRC UNDER 'SY-SUBRC',
9 SY-FDPOS UNDER 'SY-FDPOS'
10 SEARCH STRING FOR '.e .'.
11 WRITE: / '.e .', SY-SUBRC UNDER 'SY-SUBRC',