ABAP字符串操作

1.字符串移位

语法:

        SHIFT <c> [BY <n> PLACES] [<modes>]

        <modes> : (1).空白, 字符串往左移一位

                 (2).LEFT, 字符串往左移 n 位

                 (3).RIGHT, 字符串往右移 n 位

                 (4).CIRCULAR: 字符串以环状方式移位

        Example:

                 DATA STRING(10) VALUE ‘ABCDEFGHIJ’.

                 SHIFT STRING. “得到 BCDEFGHI’

                 SHIFT STRING BY 2 PLACES RIGHT. “得到 ABCDEFGH

2.取代字符串内容

语法:

        REPLACE <string1> WITH <string2> INTO <c>

        将字符串 <c> 中的 <string1> 以 <string2> 来取代

        Example:

                 DATA: STRING(10) VALUE ‘ABCDEFGHI’,

                         STR1(3) VALUE ‘DEF’,

                         STR2(3) VALUE ‘123’.

                 REPLACE STR1 WITH STR2 INTO STRING.

                 WRITE / STRING.   “得到 ABC123GHI

3.大小写的转换

语法:

        TRANSLATE <c> TO UPPER CASE. “转成大写

        TRANSLATE <c> TO LOWER CASE. “转成小写

4.在字符串中寻找部分字符串

语法:

       SEARCH <c> FOR <str>

       Example:

                DATA STRING(10) VALUE ‘ABCDEFGHIJ’.

                会回存至两个变量, SY-SUBRC 和 SY-FDPOS, 若找到则 SY-SUBRC 为 0

                SY-FDPOS 存开始位叠, 若找不到则 SY-SUBRC为 4, SY-FDPOS为 0

 

 需要说明的地方:注意模式的使用
                 指定str:查找str,str中后面的空格忽略
                 指定.str.:查找str,包含了str中尾部的空格
                 指定*str:查找以str结尾的字符串
                 指定str*:查找以str开头的字符串
               {options}的指定:
                 主要用到的就是:STARTING AT {n1}指定开始位置  ENDING AT {n2}指定结束位置

 

5.字符串长度

STRLEN(<c>)

Example:

            INT = STRLEN(‘XYZABC’). “得到 6

            INT = STRLEN(‘ABC    ’ ). “得到 3

6.取部分字符串

<f>[+<o>][<l>]

Example:

           DATA T(10) VALUE ‘ABCDEFGHIJ’.

           WRITE / T+2(4). “得到 CDEF

 

 

SPLIT:拆分字符串
           SPLIT {c} AT {del} INTO {c1} ... {cn}.
             作用:按照分割字符del把字符串c分割成c1…cn。
           SPLIT {c} AT {del} INTO TABLE {itab}.
               作用:按照分割字符del把c分割,然后放到内表中的相应字段
           常用场合:
               文件名的分割,根据完整的文件路径加文件名把文件名分割出来。
               难点:无法确定要分割多少次.
               解决方法:两两分割,到最后的那个就是了。例如:str=c:/dir1/dir2/dir3/file
                 Split str at '/' into str1 str2.
                 Find str2 for '/'.
                 Check sy-subrc = 0.
                 Do.
                   Find str2 for '/'.
                   If sy-subrc = 0.
                     Split str2 into str1 str2.
                   Else.
                     Exit.
                   Endif.
                 Enddo.
               文件上传的类型是字符串,把其分割后放到内表中。例如上面的问题:
                 data: begin of itab occurs 0 ,
                       col1(30) type c,
                     end of itab.
                 Split str at '/' into table itab.
                 describe table itab lines line.
                 Read table itab index line.
                 Itab-col1就是file

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值