首页 > 应用开发 > IT综合 > ABAP-字符串操作
一.ABAP中的字符串查找,
//查找第一次出现,
//不区分大小写
//以空格做为查找结束
.
*
DATA STRING(30) VALUE 'This is a little sentence.'.
WRITE: / 'Searched','SY-SUBRC','SY-FDPOS'.
ULINE /1(26).
SEARCH STRING FOR 'X'.
WRITE:/ 'X',SY-SUBRC UNDER 'SY-SUBRC',SY-FDPOS UNDER 'SY-FDPOS'.
SEARCH STRING FOR 'itt'.
WRITE: / 'itt', SY-SUBRC UNDER 'SY-SUBRC',SY-FDPOS UNDER 'SY-FDPOS'.
SEARCH STRING FOR '.e .'.
WRITE: / '.e .',SY-SUBRC UNDER 'SY-SUBRC',SY-FDPOS UNDER 'SY-FDPOS'.
SEARCH STRING FOR '*e'.
WRITE: / '*e',SY-SUBRC UNDER 'SY-SUBRC',SY-FDPOS UNDER 'SY-FDPOS'.
SEARCH STRING FOR 's*'.
WRITE: / 's*',SY-SUBRC UNDER 'SY-SUBRC',SY-FDPOS UNDER 'SY-FDPOS'.
结果:见桌面附图。
SEARCH FOR结构如下:
SEARCH dobj FOR pattern [IN {BYTE|CHARACTER}} MODE]
其中ABBREVIATED表示可以进行缩略查询。
AND MARK暂不明:以后补充。
查找多次出现:
FIND [{FIRST OCCURRENCE}|{ALL OCCURRENCES} OF] pattern
具体应用以后补充,其中应用到的正则表达式.
二.字符串压缩:
DATA: STRING1(25) VALUE 'one two three four', LEN TYPE I.
CONDENSE STRING1 NO-GAPS.
WRITE:STRING1.
三.字符串赋值:
MOVE TO
MOVE-CORRESPONDING TO
TYPES:CHR10 TYPE C LENGTH 10.
DATA:NAME TYPE CHR10 VALUE 'SOURCE1',SOURCE1 TYPE CHR10 VALUE 'Antony111',
WRITE (NAME)
WRITE NAME
MOVE TO 与WRITE TO区别
WRITE ... TO 把源的格式 附值到目标。
MOVE ... TO 直接把源的值附到目标。
示例:
data: gv_char1(20) type c,
start-of-selection.
* date *
write:/ 'date variable'.
write sy-datum to gv_char1.
write:/ 'write to', gv_char1.
move sy-datum to gv_char2.
write:/ 'move to', gv_char2.
skip 1.
* decimal *
write:/ 'decimal variable'.
write dec1 to gv_char1.
write:/ 'write to', gv_char1.
move dec1 to gv_char2.
write:/'move to', gv_char2.
结果:
date variable
write to 2008-11-09
move to 20081109
decimal variable
write to 22,345.89
move to
可以把一个结构赋值给一个字符串,但是这个结构的所有元素类型一定为C,N,D,T。
DATA: BEGIN OF sentence,
text2 = sentence.
CONDENSE sentence.
WRITE:/ text2.
也可以这样操作:
CONCATENATE sentence-word1 sentence-word2
WRITE:/ text2.
当然也可以如此操作:
DATA:
word1 TYPE c LENGTH 30 VALUE 'She',
word2 TYPE c LENGTH 30 VALUE 'feeds',
word3 TYPE c LENGTH 30 VALUE 'you'。
CONCATENATE word1 word2
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21277275/viewspace-1020087/ ,如需转载,请注明出处,否则将追究法律责任。