字符串处理

一、 判断字符串1是否在字符串2里可以找到?

DATA: str1(50) TYPE c VALUE '51.000',
      str2     TYPE string VALUE '.0123456789',
      str3     TYPE char20.
str3 = str1.
IF str3 CO str2.
  MESSAGE 'Correct' TYPE 'S'.
ELSE.
  MESSAGE 'Error' TYPE 'S' DISPLAY LIKE 'E'.
  LEAVE LIST-PROCESSING.
ENDIF.

二、拆分字符串

SPLIT <c> AT  <del>   INTO    <c1>   ...   <cn>.

三、连接字符串

CONCATENATE <c1> ... <cn> INTO <c> [SEPARATED BY <s>].

也可以用&&表示连接

lv_string   =  lv_str1 && lv_str2 && lv_str3 && str4.....

四、 获得字符串长度

STRLEN

data: lv_int type i.
data: lv_string type char20
lv_string = 'ABCDEFGHIGKLMNOPQWER'
 lv_INT = STRLEN( lv_string ).

五、去掉前面空格

CONDENSE <c> [NO-GAPS].
 lv_str = '  12345'
CONDENSE lv_str  NO-GAPS.
输入结果lv_str = '12345'.

六、转换大小写

TRANSLATE <c> TO UPPER CASE.  转为大写
TRANSLATE <c> TO LOWER CASE.  转为小写

七、搜索字符串

SEARCH <c> FOR <str> <options>.
查找字符串C里面有没有 STR字符

该语句在字段 < c > 中搜索< str > 中的字符串 。如果成功 ,则将 SY-SUBRC 的返回代码 值设置为0,并将 SY-FDPOS 设置为字段 < c > 中该字符串 的偏移量。

否则将 SY-SUBRC 设置为4。

c = 'asdfgtrbgh'.
str = 'fg'.
SEARCH <c> FOR <str> .
if sy-subrc = 0
endif.

更多操作可看
https://www.cnblogs.com/datie/p/11434557.html

八、截断字符串

SHIFT {c} [BY {n} PLACES] [{mode}].
lv_string = lv_str+0(4).  表示从左开始截4

作用:去掉字符串的前n个位置的字符,如果n未指定,默认为1,如果指定的n小于等于0,则字符串不变。如果n超出字符串的长度,则字符串变空,所以在做 此操作的时候要注意n的指定。可以首先获得该字符串的长度,方法:len=STRLEN©。
Mode:指定字符串截断的方向。
LEFT:从左边截断
RIGHT:从右边截断
CIRCULAR:把左边的字符放到右边。
SHIFT {c} UP TO {str} {mode}.:
作用:把字符串中在str以前的字符都去掉,同样可以指定mode,原理同上。
SHIFT {c} LEFT DELETING LEADING {str}.
SHIFT {c} RIGHT DELETING TRAILING {str}.:
作用:这两个语句就是把字符串c中前的(LEFT)或者后的(RIGHT)的字符str都去掉。

         更多可看:https://blog.csdn.net/weixin_30426879/article/details/96931896

闭环挪动字符串

DATA: lv_c TYPE char7.
lv_c = '0001234'.
SHIFT lv_c  UP TO '1' LEFT CIRCULAR.


DATA text TYPE string VALUE `I know you know `.
SHIFT text UP TO 'you' LEFT CIRCULAR.

WRITE : lv_c, text.

在这里插入图片描述

未完后续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值