ITPub博客

首页 > 应用开发 > IT综合 > ABAP-字符串操作

ABAP-字符串操作

原创 IT综合 作者:dsht2007 时间:2009-04-07 13:26:27 0 删除 编辑

一.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]
[STARTING AT p1] [ENDING AT p2]
[ABBREVIATED]
[AND MARK].

其中ABBREVIATED表示可以进行缩略查询。
AND MARK暂不明:以后补充。

查找多次出现:
FIND [{FIRST OCCURRENCE}|{ALL OCCURRENCES} OF] pattern
IN [section_of] dobj
[IN {BYTE|CHARACTER} MODE]
[{RESPECTING|IGNORING} CASE]
[MATCH COUNT mcnt]
{ {[MATCH OFFSET moff]
[MATCH LENGTH mlen]}
| [RESULTS result_tab|result_wa] }
[SUBMATCHES s1 s2 ...].
具体应用以后补充,其中应用到的正则表达式.

二.字符串压缩:
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',
TARGET TYPE CHR10,MEMORY TYPE CHR10.

WRITE (NAME) TO TARGET.
WRITE NAME TO MEMORY.

MOVE TO 与WRITE TO区别
WRITE ... TO 把源的格式 附值到目标。

MOVE ... TO 直接把源的值附到目标。

示例:

data: gv_char1(20) type c,
gv_char2(20) type c,
dec1(10) type p decimals 2 value '22345.89'.

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 22345.89

可以把一个结构赋值给一个字符串,但是这个结构的所有元素类型一定为C,N,D,T。
DATA: BEGIN OF sentence,
word1 TYPE c LENGTH 30 VALUE 'She',
word2 TYPE c LENGTH 30 VALUE 'feeds',
word3 TYPE c LENGTH 30 VALUE 'you',
word4 TYPE c LENGTH 30 VALUE 'tea',
word5 TYPE c LENGTH 30 VALUE 'and',
word6 TYPE c LENGTH 30 VALUE 'oranges',
word7 type n value 's',
END OF sentence,
text2 TYPE string.

text2 = sentence.
CONDENSE sentence.
WRITE:/ text2.

也可以这样操作:
CONCATENATE sentence-word1 sentence-word2 into text2.
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 into text2.

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21277275/viewspace-1020087/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-04-02

  • 博文量
    19
  • 访问量
    48288